fuchsia: Add support for FIDL/JS responses

Responses are always returned asynchronously as JS promises (the
newly added zx.objectWaitOne() helper also returns a promise).

The wait and response are serviced by libasync waits, and so must be
cancelled when the v8 context is torn down. The (default) dispatcher
must outlive any v8 contexts with which it is used.

Bug: 883496
Change-Id: Ib8735c6ec4196d36b53929341d57e843abaeea3b
Reviewed-on: https://chromium-review.googlesource.com/c/1240204
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600238}
10 files changed