[mojo-bindings] JS lite union and FlushForTesting

Adds a |flushForTesting()| method to generated interface proxies.

This requires use of interface control message bindings, which in turn
requires union support. So union support is added here as well.

Finally, this also required compiling the interface control message
bindings into the mojo_bindings_lite.js binary, so some minimal changes
were made to generated JS code to make it compiler-friendly.

Net code size increase of about 2kB.

Bug: 849993
Change-Id: Id44d2d0e5e85693937f5bcd5419429766d25e062
Reviewed-on: https://chromium-review.googlesource.com/c/1336065
Commit-Queue: Ken Rockot <rockot@google.com>
Reviewed-by: calamity <calamity@chromium.org>
Cr-Commit-Position: refs/heads/master@{#608669}