TrackEvent: Add support for debug annotations

This patch makes it possible to attach one or two debug annotations to a
trace event, e.g.:

    TRACE_EVENT_BEGIN("cat", "Name", "color", 0xffaaccee, "density", .5f);

The user can also specify a custom debug annotation object that will
get serialized to the DebugAnnotation proto through a callback. This is
intended for implementing the legacy TracedValue system on top of
TrackEvent.

Bug: 132678367
Change-Id: I769c2eb346d3bdfac50158a333481f83962bfb6b
diff --git a/BUILD b/BUILD
index 5c820db..fc391aa 100644
--- a/BUILD
+++ b/BUILD
@@ -418,6 +418,7 @@
     srcs = [
         "include/perfetto/tracing/buffer_exhausted_policy.h",
         "include/perfetto/tracing/data_source.h",
+        "include/perfetto/tracing/debug_annotation.h",
         "include/perfetto/tracing/event_context.h",
         "include/perfetto/tracing/internal/basic_types.h",
         "include/perfetto/tracing/internal/data_source_internal.h",
@@ -1021,6 +1022,7 @@
     name = "src_tracing_client_api",
     srcs = [
         "src/tracing/data_source.cc",
+        "src/tracing/debug_annotation.cc",
         "src/tracing/event_context.cc",
         "src/tracing/internal/in_process_tracing_backend.cc",
         "src/tracing/internal/in_process_tracing_backend.h",