tracing: get rid of files in TracingController interface
The only way to get the tracing data used to be by reading the file
provided in TracingController::DisableTracing() interface. This does
not fit well for most usages, so this introduces a TraceDataSink
interface that is backed either by a file, string, or, in case of
DevTools, by the protocol client.
This resolves the OOM in browser and imporves performance while
recording very large traces through DevTools, streamlines
TracingController core and reduces coplexity of code for most
TracingController clients.
BUG=409733,361045
Review URL: https://codereview.chromium.org/
541763002
Cr-Commit-Position: refs/heads/master@{#294801}