Introduce protozero protoc compiler plugin (Part 3)

Introduce the plugin can be passed to protoc --plugin to
generate ProtoZero headers from .proto files.
Also introduce the build system incantations required to
generate protobufs (with and without the protozero plugin).
Finally add a end-to-end test to check that the protos
written by ProtoZero are readable by the official protobuf
library.

Change-Id: I1cd4dde5dc7a3efee2d7de527e31195cfdff4fc9
diff --git a/cpp_common/build_config.h b/cpp_common/build_config.h
index a7a540f..d6f01e3 100644
--- a/cpp_common/build_config.h
+++ b/cpp_common/build_config.h
@@ -17,6 +17,8 @@
 #ifndef CPP_COMMON_BUILD_CONFIG_H_
 #define CPP_COMMON_BUILD_CONFIG_H_
 
+// DO NOT include this file in public headers (include/) to avoid collisions.
+
 // Allows to define build flags that give a compiler error if the header that
 // defined the flag is not included, instead of silently ignoring the #if block.
 #define BUILDFLAG_CAT_INDIRECT(a, b) a##b