trace_processor: add thread track table and interning code

Also add stubs to do the interning in all callers to slice tracker; in a
follow up CL, we will pass track_id to slice_tracker which will use it
to compute stacks.

Change-Id: I6596f7b6905538cee602dd9b9ed203f26bb54668
diff --git a/src/trace_processor/trace_storage.h b/src/trace_processor/trace_storage.h
index df9092b..0799eae 100644
--- a/src/trace_processor/trace_storage.h
+++ b/src/trace_processor/trace_storage.h
@@ -1174,6 +1174,13 @@
     return &process_track_table_;
   }
 
+  const tables::ThreadTrackTable& thread_track_table() const {
+    return thread_track_table_;
+  }
+  tables::ThreadTrackTable* mutable_thread_track_table() {
+    return &thread_track_table_;
+  }
+
   const Slices& slices() const { return slices_; }
   Slices* mutable_slices() { return &slices_; }
 
@@ -1311,6 +1318,7 @@
   tables::TrackTable track_table_{&string_pool_, nullptr};
   tables::GpuTrackTable gpu_track_table_{&string_pool_, &track_table_};
   tables::ProcessTrackTable process_track_table_{&string_pool_, &track_table_};
+  tables::ThreadTrackTable thread_track_table_{&string_pool_, &track_table_};
 
   // Metadata for gpu tracks.
   GpuContexts gpu_contexts_;