tp: add metatracing

This CL adds metatracing support to trace processor using the existing
metatracing API in base. This includes plumbing to shell with the -m
flag allowing metatracing of shell.

We use a new implementation of metatracing as the one in base does not
have quite the right shape for use in trace processor (e.g. the use of
task runners, the lack of args support etc)

Change-Id: Ib052d8d2d623f18e95c8614448975617d914dcca
diff --git a/BUILD b/BUILD
index cb7cfd3..15e2ae5 100644
--- a/BUILD
+++ b/BUILD
@@ -937,6 +937,15 @@
     ],
 )
 
+# GN target: //src/trace_processor:metatrace
+filegroup(
+    name = "src_trace_processor_metatrace",
+    srcs = [
+        "src/trace_processor/tp_metatrace.cc",
+        "src/trace_processor/tp_metatrace.h",
+    ],
+)
+
 # GN target: //src/trace_processor:storage_full
 filegroup(
     name = "src_trace_processor_storage_full",
@@ -2865,6 +2874,7 @@
         ":src_trace_processor_ftrace_descriptors",
         ":src_trace_processor_importers_common",
         ":src_trace_processor_lib",
+        ":src_trace_processor_metatrace",
         ":src_trace_processor_metrics_lib",
         ":src_trace_processor_sqlite_sqlite",
         ":src_trace_processor_storage_full",
@@ -2955,6 +2965,7 @@
         ":src_trace_processor_ftrace_descriptors",
         ":src_trace_processor_importers_common",
         ":src_trace_processor_lib",
+        ":src_trace_processor_metatrace",
         ":src_trace_processor_metrics_lib",
         ":src_trace_processor_rpc_httpd",
         ":src_trace_processor_rpc_rpc",
@@ -3123,6 +3134,7 @@
         ":src_trace_processor_ftrace_descriptors",
         ":src_trace_processor_importers_common",
         ":src_trace_processor_lib",
+        ":src_trace_processor_metatrace",
         ":src_trace_processor_metrics_lib",
         ":src_trace_processor_sqlite_sqlite",
         ":src_trace_processor_storage_full",