Add GN Closure Compilation ui/webui/

This CL converts ui/webui/ to use GN for its Closure Compilation. For
now this will run side-by-side with GYP, with the GYP compilation being
removed once all clients are switched to GN.

The compile_js.gni has been augmented with extra_sources support and
the ability to type check a group of js_library targets. A PRESUBMIT
which warns when BUILD.gn files are not updated has been added.

Bug: 632206
Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation
Change-Id: Ibad3213eb67f5c0ea42555cc45126a00cbdb783e
Reviewed-on: https://chromium-review.googlesource.com/942128
Commit-Queue: calamity <[email protected]>
Reviewed-by: Dirk Pranke <[email protected]>
Reviewed-by: Demetrios Papadopoulos <[email protected]>
Cr-Commit-Position: refs/heads/master@{#541316}
32 files changed