[CRD iOS] Implement Char-to-Keycode mapping logic for US keyboard layout

Previously we don't bother to implement a keycode mapping logic and
we directly send texts to the host to inject. Hosts usually handle text
injection very differently than key injection and may end up texts being
directly injected to the host without passing through IME. In other
words, host side IME doesn't work with our current key injection
implementation.

The downside of this change is that non-US keyboard user will now get
the wrong keyboard output on the host again, which is what we had on the
v1 client.

For longer term, we can add a new host setting for changing the keyboard
layout.

NOTRY=true

Bug: 830959
Change-Id: Ia34b6894fd7c0a7a07a5b9657aca19c2a878bd4e
Reviewed-on: https://chromium-review.googlesource.com/1006065
Commit-Queue: Yuwei Huang <yuweih@chromium.org>
Reviewed-by: Gary Kacmarcik <garykac@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549706}
9 files changed