trace_processor: perf sample counter tracking and distinguishing between multiple data sources

Primary additions:
* perf_session_id, which distinguishes individual profiling data sources.
* perf_counter_track, which both names the timebase for a
  per-{cpu, perf_session_id} sampling stream, and tracks the sampled
  counts themselves (now inserted into |counter| table).

The is_timebase column is added prematurely, but should become relevant
once we start supporting multi-counter sampling.

See go/perf-counters-tp for overall plan.
Will send a difftest in a separate patch once we agree that this
implementation makes sense.

Bug: 180437026
Change-Id: Ie23024ea4c6a9bdc1eb3c5abdb098705f3a21d58
diff --git a/Android.bp b/Android.bp
index 4c19204..a89d624 100644
--- a/Android.bp
+++ b/Android.bp
@@ -7819,6 +7819,7 @@
     "src/trace_processor/importers/proto/memory_tracker_snapshot_parser.cc",
     "src/trace_processor/importers/proto/metadata_tracker.cc",
     "src/trace_processor/importers/proto/packet_sequence_state.cc",
+    "src/trace_processor/importers/proto/perf_sample_tracker.cc",
     "src/trace_processor/importers/proto/profile_module.cc",
     "src/trace_processor/importers/proto/profile_packet_utils.cc",
     "src/trace_processor/importers/proto/profiler_util.cc",
@@ -7899,6 +7900,7 @@
     "src/trace_processor/importers/proto/async_track_set_tracker_unittest.cc",
     "src/trace_processor/importers/proto/heap_graph_tracker_unittest.cc",
     "src/trace_processor/importers/proto/heap_profile_tracker_unittest.cc",
+    "src/trace_processor/importers/proto/perf_sample_tracker_unittest.cc",
     "src/trace_processor/importers/proto/proto_trace_parser_unittest.cc",
     "src/trace_processor/importers/syscalls/syscall_tracker_unittest.cc",
     "src/trace_processor/importers/systrace/systrace_parser_unittest.cc",