Remove libprotobuf from IPC layer

This CL switches the IPC layer to use directly the protozero-based
.gen.{cc,h} classes and stop relying on libprotobuf. After this
CL the traced and traced_probes are fully protobuf-free and the
amalgamated SDK becomes fully hermetic.
There are few dependencies left on libprotobuf outside this,
namely: (1) tests, (2) perefetto cmdline client,
(3) some tools, (4) trace-processor libprotobuf-full
for reflection on metrics .proto files.

This CL:
- Updates the .gen.{cc,h} and .ipc.{cc,h} to take a
  wrapper_namespace argument. This makes them consistent
  with the protozero plugin.
- Moves all .gen.{cc,h} classes into the ::perfetto::protos::gen
  namespace. Update forward_decls.h to alias the old types for
  TraceConfig and the like into ::perfetto.
- Updates the sources in the ipc layer to use the moved classes
  in the "gen" namespace.

Bug: 132880619
Change-Id: I72a441afe800f1a0ca45dc12ea8029528f5e0aab
diff --git a/BUILD.gn b/BUILD.gn
index 85475a9..5e010cc 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -203,6 +203,7 @@
     sources = [
       "include/perfetto/tracing.h",
     ]
+    assert_no_deps = [ "//gn:protobuf_lite" ]
   }
 }
 
@@ -233,6 +234,7 @@
       "src/tracing:sliced_protobuf_input_stream",
     ]
   }
+  assert_no_deps = [ "//gn:protobuf_lite" ]
   if (enable_perfetto_trace_processor_sqlite) {
     component("libtrace_processor") {
       public_configs = [ "gn:public_config" ]