Create a private Mojo bindings for CrOS IME.

This change will make the 1st-party IME extension be able to access
our IME service on ChromeOS, which includes:
  * create a customized Mojo bindings for the IME extension, and it's
    only accessible by mojoPrivate API with private permission.
  * register the service request in renderer process and forward it to
    the service manager via connector.
  * Service manager will launch the IME service in Utility process
    on demand and bind it to the request from extension.

See go/cros-ime-decoders-mojo for an outline of this IME service.

Test locally on my workstation and verified all the basic functions.

Bug: 837156
Change-Id: I1b75e9c807816156676c5da26d828968ad902f40
Reviewed-on: https://chromium-review.googlesource.com/1151084
Commit-Queue: Leo Zhang <[email protected]>
Reviewed-by: Scott Violet <[email protected]>
Reviewed-by: Nasko Oskov <[email protected]>
Reviewed-by: Tom Sepez <[email protected]>
Cr-Commit-Position: refs/heads/master@{#586105}
diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn
index 1836996..ea57b696 100644
--- a/chrome/browser/extensions/BUILD.gn
+++ b/chrome/browser/extensions/BUILD.gn
@@ -1001,6 +1001,7 @@
       "//ash/public/cpp",
       "//chromeos/components/proximity_auth",
       "//chromeos/components/proximity_auth/logging",
+      "//chromeos/services/ime/public/mojom",
       "//components/arc",
       "//components/chrome_apps",
       "//components/constrained_window",