Add consumer API and --query cmdline to list data sources

This CL adds a --query (and --query-raw) cmdline option to
the perfetto cmdline client to list the data sources connected
(whether they are tracing or not) and to retrieve the
DataSourceDescriptor passed at registration time.
--query returns a human readable format (for debugging).
  It does NOT print the full DataSourceDescriptor (because
  it might now know the schema)
  Example: https://pastebin.com/cC9mAWw1
--query-raw is for machine-to-machine and passes through
  the whole tracing_service_state.proto, including the
  DataSourceDescriptor(s).

Bug: 132678367
Test: unittests + integrationtests
Change-Id: Id776cc6efe4109ad879380fd6adab8e9d685351a
diff --git a/protos/BUILD b/protos/BUILD
index 4c280e9..bbf632a 100644
--- a/protos/BUILD
+++ b/protos/BUILD
@@ -30,10 +30,12 @@
     srcs = [
         "perfetto/common/android_log_constants.proto",
         "perfetto/common/commit_data_request.proto",
+        "perfetto/common/data_source_descriptor.proto",
         "perfetto/common/descriptor.proto",
         "perfetto/common/observable_events.proto",
         "perfetto/common/sys_stats_counters.proto",
         "perfetto/common/trace_stats.proto",
+        "perfetto/common/tracing_service_state.proto",
     ],
     has_services = 1,
     cc_api_version = 2,
@@ -71,10 +73,12 @@
     srcs = [
         "perfetto/common/android_log_constants.proto",
         "perfetto/common/commit_data_request.proto",
+        "perfetto/common/data_source_descriptor.proto",
         "perfetto/common/descriptor.proto",
         "perfetto/common/observable_events.proto",
         "perfetto/common/sys_stats_counters.proto",
         "perfetto/common/trace_stats.proto",
+        "perfetto/common/tracing_service_state.proto",
     ],
 )
 
@@ -94,7 +98,6 @@
         "perfetto/config/android/android_log_config.proto",
         "perfetto/config/chrome/chrome_config.proto",
         "perfetto/config/data_source_config.proto",
-        "perfetto/config/data_source_descriptor.proto",
         "perfetto/config/ftrace/ftrace_config.proto",
         "perfetto/config/inode_file/inode_file_config.proto",
         "perfetto/config/power/android_power_config.proto",
@@ -180,7 +183,6 @@
         "perfetto/config/android/android_log_config.proto",
         "perfetto/config/chrome/chrome_config.proto",
         "perfetto/config/data_source_config.proto",
-        "perfetto/config/data_source_descriptor.proto",
         "perfetto/config/ftrace/ftrace_config.proto",
         "perfetto/config/inode_file/inode_file_config.proto",
         "perfetto/config/power/android_power_config.proto",