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>