wam/wash: Support transport/channel reconnect.

Make it possible for a wam.jsfs.RemoteFileSystem (and other
transport and channel clients) to attempt to recover from a
loss of transport or channel ready.

Change-Id: I7da0517213db84cb1a6fd82fe2de3b422d21744e
Reviewed-on: https://chromium-review.googlesource.com/198726
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
wam/wash/nassh: Make it easier to publish a jsfs

* Add wam.jsfs.FileSystem..publishOn(channel) to handle the
  boilerplate needed to publish a jsfs file system on a channel.

Change-Id: I1b0138a94519361d6b8137be691fc4c5293783c4
Reviewed-on: https://chromium-review.googlesource.com/198895
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
saltpig: Initial commit of nacl collection v2 app

This is an experimental app that hosts a few binaries from naclports,
exposing their functionality over wam.FileSystem.  It's currently
hardcoded to only speak to the "Wash (tot)" and "Wash (dev)"
extensions.

You'll need to run the ./bin/get_nacl.sh file to fetch the necessary
nacl binaries from the web, and ./bin/mkdeps.sh to build the js
dependencies.

Change-Id: I5db5003903854bdc45c7c6b81eb482d2a47e7a26
Reviewed-on: https://chromium-review.googlesource.com/198908
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
wash: Fix empty arg parsing, wam: add missing error

Change-Id: I609a4b664a4dcf142ecdc5e6e899e325531687a1
wash: Fix parsing of argument-less commands to pass null as the arg value.
wam: Add the missing FileExists error.
Reviewed-on: https://chromium-review.googlesource.com/198909
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>