Mojo: Improved C++ wrappers.

These build in some stronger static typing and try to help with lifetime
management. They remain true to the C API (using functions instead of
methods), to be consistent and avoid awkwardness between the Handle
objects and their scoped versions (e.g., if we put methods on
MessagePipeHandle, it'd be awkward to access them from the scoped
version).

Also, they are written with code generators in mind. As such, currently
I only provide WriteMessageRaw()/ReadMessageRaw() that a) provide full
access to the C API, and b) don't help with lifetime management (but
also don't impose any further efficiency issues either). I'd consider
adding non-raw versions, but the intention is that most people would use
generated proxy code (which may take, e.g., MessagePipeHandle or
ScopedMessagePipeHandle arguments).

R=abarth@chromium.org, darin@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236357 0039d316-1c4b-4281-b951-d872f2087c98
[NaCl SDK] Enable linux host build of nacl_io_socket_test.

Add -Wl,-Bsymbolic to linux host build so that symbols
in the shared object override those in already loaded
libraries (specifically libc).

Also add .map file generation to linux build.

Also, re-enable --no-sandbox when running linux host builds
(without this loading of the so fails with permission
denied).

BUG=295794
R=binji@chromium.org

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

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