Introduce base::FlatSet

A memory-dense alternative to std::set.
The driving use-case is pid tracking (see aosp/1180622) but
it seems to work well in most cases where the set is small.
See comments and links in flat_set.h for design and
performance characteristics.

Bug: 145398368
Test: perfetto_unittests + perfetto_benchmarks
Change-Id: Ie3e57e98228559b06bba62333f9f70fbab485681
diff --git a/Android.bp b/Android.bp
index b722a95..9c26c44 100644
--- a/Android.bp
+++ b/Android.bp
@@ -4080,6 +4080,7 @@
   name: "perfetto_src_base_unittests",
   srcs: [
     "src/base/circular_queue_unittest.cc",
+    "src/base/flat_set_unittest.cc",
     "src/base/metatrace_unittest.cc",
     "src/base/no_destructor_unittest.cc",
     "src/base/optional_unittest.cc",