Create tool to export Bazel projects to CMake format.

This tool will export new project files that can be
used to build a subset of Skia using CMake. At present this
is the //:skia_public Bazel target, which results in a CMake
target to build libskia_public.a.

Suggested reviewing order:
1. //bazel/exporter/build_proto/ - the Go files are generated by
   `protoc` to generate wrappers from some proto files from
   https://github.com/bazelbuild/bazel/tree/master/src/main/protobuf.
   More info in //bazel/exporter/build_proto/README.md.
2. //bazel/exporter/interfaces/ - the exporter interfaces.
3. //bazel/exporter/interfaces/mocks/ - the mockery generated mock
   classes for testing.
4. //bazel/exporter/ - the package containing the implementation
   of the Bazel to CMake exporter.
5. //bazel/exporter_tool/ - the application that uses the exporter
   package to produce a new CMakeLists.txt file.
6. //bazel/Makefile - adds a new helper generate_cmake target that
   uses the exporter_tool to create //CMakeLists.txt


Bug: skia:13486
Change-Id: Ia7649c43848f8a0db3a9dfb0a5f07d81b44bde7e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/559402
Commit-Queue: Chris Mumford <cmumford@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
31 files changed