processor: Add storage for virtual tracks

Adds an indirection for virtual tracks (incl. async event tracks),
so that we can also store a upid with process-scope async tracks.

The new virtual tracks storage is designed for compatibility with a
more generic "tracks" table (track_id column), but for now, we'll use
track_id == index into vtracks.

Also updates proto & fuchsia parsers to store async events with track
references.

The vtracks table is not yet exposed via SQL.

Change-Id: I3d8fbe0e2575b40c5e652a79a70c9a5999334179
diff --git a/Android.bp b/Android.bp
index 9f55780..55db0da 100644
--- a/Android.bp
+++ b/Android.bp
@@ -3749,6 +3749,7 @@
     "src/trace_processor/trace_sorter.cc",
     "src/trace_processor/trace_storage.cc",
     "src/trace_processor/virtual_destructors.cc",
+    "src/trace_processor/virtual_track_tracker.cc",
     "src/trace_processor/window_operator_table.cc",
   ],
   shared_libs: [
@@ -3917,6 +3918,7 @@
     "src/trace_processor/trace_sorter.cc",
     "src/trace_processor/trace_storage.cc",
     "src/trace_processor/virtual_destructors.cc",
+    "src/trace_processor/virtual_track_tracker.cc",
     "src/trace_processor/window_operator_table.cc",
     "tools/trace_to_text/main.cc",
     "tools/trace_to_text/pprof_builder.cc",