tp: add TokenizedObjectStore for storing metadata while sorting events

This CL introduces TokenizedObjectStore, a variadic data structure
optimized for storing the metadata for events in a highly memory
efficient manner. This class is intended to be a replacement for
VariadicQueue and related classes due to being better tested and more
readable.

This class is implemented by building on top of BumpAllocator from a
previous CL and a follow-up CL will move TraceSorter to using this
logic.

Change-Id: I40302a7d23ace01880e155834ccfb3b665caca38
diff --git a/BUILD b/BUILD
index 9ab91e9..d7f4d06 100644
--- a/BUILD
+++ b/BUILD
@@ -1825,6 +1825,8 @@
         "src/trace_processor/sorter/trace_sorter.h",
         "src/trace_processor/sorter/trace_sorter_internal.h",
         "src/trace_processor/sorter/trace_sorter_queue.h",
+        "src/trace_processor/sorter/trace_token_buffer.cc",
+        "src/trace_processor/sorter/trace_token_buffer.h",
     ],
 )
 
@@ -1986,6 +1988,15 @@
     ],
 )
 
+# GN target: //src/trace_processor/util:bump_allocator
+perfetto_filegroup(
+    name = "src_trace_processor_util_bump_allocator",
+    srcs = [
+        "src/trace_processor/util/bump_allocator.cc",
+        "src/trace_processor/util/bump_allocator.h",
+    ],
+)
+
 # GN target: //src/trace_processor/util:descriptors
 perfetto_filegroup(
     name = "src_trace_processor_util_descriptors",
@@ -4581,6 +4592,7 @@
         ":src_trace_processor_tables_tables",
         ":src_trace_processor_tables_tables_python",
         ":src_trace_processor_types_types",
+        ":src_trace_processor_util_bump_allocator",
         ":src_trace_processor_util_descriptors",
         ":src_trace_processor_util_glob",
         ":src_trace_processor_util_gzip",
@@ -4731,6 +4743,7 @@
         ":src_trace_processor_tables_tables",
         ":src_trace_processor_tables_tables_python",
         ":src_trace_processor_types_types",
+        ":src_trace_processor_util_bump_allocator",
         ":src_trace_processor_util_descriptors",
         ":src_trace_processor_util_glob",
         ":src_trace_processor_util_gzip",
@@ -4936,6 +4949,7 @@
         ":src_trace_processor_tables_tables",
         ":src_trace_processor_tables_tables_python",
         ":src_trace_processor_types_types",
+        ":src_trace_processor_util_bump_allocator",
         ":src_trace_processor_util_descriptors",
         ":src_trace_processor_util_glob",
         ":src_trace_processor_util_gzip",