[mojo] Per-message dispatch tasks

Modifies C++ bindings internals such that incoming messages, while
still read off the pipe in batch, are each dispatched with
individual tasks rather than dispatching them all in series within
the same task.

The first message in a batch is still dispatched synchronously, and
exceptions are made during sync wait operations where messages must
be (at least partially) dispatched so that the waiting endpoint can
get at its anticipated reply without allowing its calling sequence
to progress.

Also just for fun, deletes Connector::SyncWatch because it hasn't
been used in, like, forever.

TBR=jam@chromium.org

Bug: 866708
Change-Id: If56d2341c0642a0fd99a90cb60a2dfc5573e0b4e
Reviewed-on: https://chromium-review.googlesource.com/c/1145692
Commit-Queue: Ken Rockot <rockot@google.com>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623535}
10 files changed