Mojo: First stab at making MessagePipes work across OS pipes.

Given a running RawChannel, one can set up MessagePipes that have one endpoint
available locally (in the usual way) and the other endpoint proxied to the other
side of the OS-level "pipe" (which presumably has a symmetrical setup -- i.e.,
another RawChannel, etc.).

Currently, this has only been tested in-process, but apart from possible
synchronization/bootstrapping issues there's no reason it shouldn't work across
processes. (Whatever launches the process will have to begin the bootstrapping
by getting an OS pipe between processes and making sure things are appropriately
synchronized.)

Still to do:
  - Properly handle errors (e.g., due to the pipe/process dying).
  - Figure out how to start processes and bootstrap in that situation (and test
    this).

R=darin@chromium.org, darin

Review URL: https://codereview.chromium.org/60103005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233638 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 233638
[NaCl SDK] fix bug in nacl_io_socket_test (null-terminate string)

BUG=none
TBR=sbc@chromium.org

Review URL: https://codereview.chromium.org/64803003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233639 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 233639