Initial implementation of IME service on CrOS.

In order to get rid of NaCl dependency and take advantage of Mojo
to provide a better user typing experience, we plan to create an IME
service for ChromeOS.

See go/mojo-ime-cros-interface for the interface design doc.

More about the project, read go/cros-ime-decoders-mojo for an outline
Please check out crrev.com/c/1015148 for an prototype of this service.

Tested on local by enabling build flags (enable_cros_ime_service and
enable_cros_ime_decoder), then build and run
chromeos/services:chromeos_services_unittests

Bug: 837156
Change-Id: Ib99380ba3fa17f1d93c6ce16da20604afbc24c84
Reviewed-on: https://chromium-review.googlesource.com/1029792
Reviewed-by: Satoru Takabayashi <satorux@google.com>
Reviewed-by: Leo Zhang <googleo@chromium.org>
Reviewed-by: Satoru Takabayashi <satorux@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Shu Chen <shuchen@chromium.org>
Commit-Queue: Leo Zhang <googleo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575562}
20 files changed