Enable Blink native Mojo bindings in WebUI

Adds the concept of ContextEnabled features as an extended attribute in
Web IDL, exposing a way for embedders to turn specific API features on
or off at context creation time.

Affixes this extended attribute to Mojo, MojoHandle, and MojoWatcher
IDLs to allow their exposure to be controlled per-context separately
from the MojoJS RuntimeEnabled state.

Finally, this also flips on the MojoJS ContextEnabled feature for all
RenderFrame contexts in which WebUI bindings are enabled.

BUG=699569,723923

Change-Id: Ie0fd6383ae86c133685b3e7b31eeca769bf83e06
Reviewed-on: https://chromium-review.googlesource.com/509390
Commit-Queue: Ken Rockot <rockot@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#474973}
27 files changed