Reland "Mojo: Adapt C++ bindings to new message APIs"

This is a reland of 5b9839ca209cd11c4d899fa92202a280a5c9d222

Some minor behavioral changes made to match expectations in certain
testing environments. No practical impact on production code vs the
original CL.

Original change's description:
> Mojo: Adapt C++ bindings to new message APIs
> 
> Replaces use of MojoAllocMessage with MojoCreateMessage et al in
> preparation for supporting lazy serialzation in the C++ bindings.
> 
> This eliminates the last remaining usage of deprecated system APIs
> (MojoAllocMessage, MojoGetMessageBuffer, MojoReadMessage, and
> MojoWriteMessage.)
> 
> Message serialization logic such as header encoding is merged into
> the Message implementation.
> 
> BUG=725321
> 
> Change-Id: I323ec330ed58f271a6769e7068a28be842688567
> Reviewed-on: https://chromium-review.googlesource.com/536415
> Commit-Queue: Ken Rockot <rockot@chromium.org>
> Reviewed-by: Yuzhu Shen <yzshen@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#480214}

TBR=yzshen@chromium.org

Bug: 725321
Change-Id: Ifa30ed0f14336a233412527a1ac2d9b52b16c927
Reviewed-on: https://chromium-review.googlesource.com/539097
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#480303}

CrOS-Libchrome-Original-Commit: a5a7c9557dd997c7d9520006e31db82b22373b9d
23 files changed
tree: 85ac25e423beff270aa193cc7ced6ad6decfc3f2
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/