Introduce support for deferred start (fast triggering)

This CL introduces new Setup methods to both the
producer and consumer API. The API changes are designed
to be backwards compatible with the prior versions of
Android.

From the producer viewpoint: each data source now sees a
SetupDataSource() method before the StartDataSource() method.
The data source instance id and config is identical. This
gives the data source a chance to setup itself before actually
starting.

From the consumer viewpoint:
A new "deferred_start" field is added to the TraceConfig.
When deferred_start is true, the EnableTracing method
brings up all the tracing harness and calls the
SetupDataSource() methods on the producers, but doesn't
start them. Data sources are started only when calling
StartDataSource().

Note that in this CL, the ftrace data source doesn't
deal yet with the split Setup/Start phases and starts
directly upon creation. This will be fixed in a separate
CL.

Bug: 116547201
Change-Id: I2ab22c7f8ee2388f8158df733dddeef9dc9c0143
diff --git a/test/end_to_end_shared_memory_fuzzer.cc b/test/end_to_end_shared_memory_fuzzer.cc
index 7bd70b3..bdc28e5 100644
--- a/test/end_to_end_shared_memory_fuzzer.cc
+++ b/test/end_to_end_shared_memory_fuzzer.cc
@@ -76,6 +76,9 @@
 
   void OnDisconnect() override {}
 
+  void SetupDataSource(DataSourceInstanceID,
+                       const DataSourceConfig& source_config) override {}
+
   void StartDataSource(DataSourceInstanceID,
                        const DataSourceConfig& source_config) override {
     auto trace_writer = endpoint_->CreateTraceWriter(