[fidl] Empty struct support for garnet, part 3.

Added compatibility and roundtrip tests. This must be submitted after:

1. <https://fuchsia-review.googlesource.com/c/zircon/+/228215/7>, since
   it's dependent on fidlc to properly parse an empty struct definition,
2. <https://fuchsia-review.googlesource.com/c/garnet/+/228456>, since
   it's dependent on fidlgen support for empty structs.
3. <https://fuchsia-review.googlesource.com/c/garnet/+/233995>, which
   fixes a bug in (2),
4. <https://fuchsia-review.googlesource.com/c/third_party/go/+/233316>,
   which properly encodes/decodes empty structs.

FIDL-283 #progress

Test: fx build garnet/public/lib/fidl/cpp:host_tests && $FUCHSIA_DIR/out/x64/host_x64/fidl_cpp_host_unittests
Test: fx build && fx scp $FUCHSIA_DIR/out/x64/fidl_cpp_unittests "[$(fx netaddr --fuchsia)]":/tmp && fx shell /tmp/fidl_cpp_unittests
Test: $FUCHSIA_DIR/garnet/go/src/fidl/compiler/backend/typestest/regen.sh && fx build && fx build-push fidl_compatibility_test_bin && fx scp $FUCHSIA_DIR/garnet/bin/fidl_compatibility_test/run_fidl_compatibility_test_garnet.sh "[$(fx netaddr --fuchsia)]":/tmp && fx shell /tmp/run_fidl_compatibility_test_garnet.sh

Change-Id: I5832c55e24ec1abc19ad8a4e347d73226e0c39d6
15 files changed