Fix crosh handling of non-ASCII keyboard input.

Crosh should ensure that strings sent to chrome.terminalPrivate are UTF-16
encoded. If the keyboard character encoding is utf-8, the input should be
decoded before forwarding it to chrome.terminalPrivate.sendString

Change-Id: I14a8131b18e82dac191efbe50c666f8f613476ca
Reviewed-on: https://chromium-review.googlesource.com/198044
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
lib_wam -> wam refactor.

Huge web-app-messaging refactor.

Change-Id: I8e492de6c96f429899b6df2f4b5814107cdf4c2f
Reviewed-on: https://chromium-review.googlesource.com/197752
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
libdot 1.8: Remove option parameter from result.pass()

* lib.TestManager.Result.prototype.pass took an optional parameter, a message
  to log, which was never used, and made it awkward to use
  result.pass.bind(result) as the value of an onSuccess callback, since any
  parameter passed to the callback would show up in the test log.

Change-Id: I7698d2c69658b0ba838b750ecf320230e575f21a
Reviewed-on: https://chromium-review.googlesource.com/198246
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
Update wash to work with the latest wam

* Update wash to fit into the post lib_wam -> wam world.
* Add "builtins" module for commands that need to operate
  on the current shell instance, implement "cd", "pwd", and
  "export".
* Add "nacl", "pnacl" and "stty" executables.

Change-Id: Ibefee5d2f7b77ca43af1024ec96500629780a23f
Reviewed-on: https://chromium-review.googlesource.com/198247
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
Pass cros profile switching key combo

Change-Id: Ic78c0ec0e039886b52f2614f150b97a9739f146b
Reviewed-on: https://chromium-review.googlesource.com/198227
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
Add wam_jsfs_remote_file_system.js and stuff

Adds a RemoteFileSystem entry type to JSFS, which can be used to
mount a remote wam.FileSystem into the local JSFS.

Also adds a '/mnt/loopback' entrypoint to the wash JSFS, which
demonstrates wam.jsfs.RemoteFileSystem by having wash mount its
own file system via a wam.transport.Direct connection.

Change-Id: Ib400595ef4f2b8ed3271519165beb7d153b90787
Reviewed-on: https://chromium-review.googlesource.com/198314
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>