TrackEvent: Add support for interned state

This patch adds a way for client library users to define their own track event
arguments which will be automatically deduplicated (interned) when writing into
the trace. For example, strings such as event categories and names that are
reused throughout the trace are good candidates for interning.

This patch also rewrites TrackEvent internals to use the new interning
mechanism.

Bug: 132678367
Change-Id: I29a50947a1f7641c3a3ed74b7cc670151ea935e8
diff --git a/BUILD b/BUILD
index 80ba731..218df03 100644
--- a/BUILD
+++ b/BUILD
@@ -425,6 +425,7 @@
         "include/perfetto/tracing/track_event.h",
         "include/perfetto/tracing/track_event_category_registry.h",
         "include/perfetto/tracing/track_event_context.h",
+        "include/perfetto/tracing/track_event_interned_data_index.h",
     ],
 )