Shared library track event: API/ABI to emit data

This commit implements:
* New ABIs to emit events to the data source:
  * A low level ABI that allows users to do their own message
    serialization.
  * A high level ABI that accepts a representation of the data to be
    traced and performs serialization in the library.
* The PERFETTO_TE macro (similar to the TRACE_EVENT macro) that can be
  used to emit trace events using the high level ABI.

Bug: 237053982
Change-Id: I0ca1a9b03dfa67f7618e27e176f3113eddca871a
diff --git a/gn/perfetto_unittests.gni b/gn/perfetto_unittests.gni
index b7b1e01..3ed4420 100644
--- a/gn/perfetto_unittests.gni
+++ b/gn/perfetto_unittests.gni
@@ -20,6 +20,7 @@
   "src/base:unittests",
   "src/base/threading:unittests",
   "src/protozero:unittests",
+  "src/shared_lib:unittests",
   "src/tracing/core:unittests",
   "src/tracing:unittests",
   "src/profiling:unittests",