[IPC 6] Add code generator and end-to-end test

Introduces a plugin for protoc to generate .ipc.{cc,h} files for
.proto services. This enables our IPC layer to have a workflow that
is extremely similar to gRPC's one:
- IPC services are defined in proto files (using the rpc syntax).
- The .proto files are built using the regular protoc compiler,
  passing our plugin on the command line.
- The plugin generates extra xxx.ipc.{cc,h} files that contain
  service definitions for both client and host side.

This CL also introduces the build file library to integrate the plugin
into the build system. It has some rough edges (see TODOs, e.g., will
fail if the types of the reply/request aren't defined in the
same proto file), but should be good to go for a v0.
This also add an initial end-to-end test that shows the IPC
machinery in action.

Bug: 68854111
Change-Id: I2b9a21af972b6ae5350dffce2d1838e560a967c9
diff --git a/BUILD.gn b/BUILD.gn
index 3211ebd..cb92679 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -19,6 +19,7 @@
     "//buildtools:protobuf_lite",
     "//buildtools:protoc($host_toolchain)",
     "//ftrace_reader:ftrace_reader_demo",
+    "//ipc/src/protoc_plugin:ipc_plugin($host_toolchain)",
     "//protos/ftrace",
     "//protozero/src/protoc_plugin($host_toolchain)",
     "//tools/ftrace_proto_gen:ftrace_proto_gen",