Mojo: Cancel WaitingCallbacks when their HandleWrappers are closed.
Currently, if a JS connector is left to be garbage collected, the handle
and the WaitingCallback both become ready to be collected at the same
time. If the handle is collected first, this results in an asynchronous
wait on a closed handle. With this change, WaitingCallback registers
itself as an observer to be notified when the handle it's watching is
closing and cancels the wait if the handle closes while the wait is in
progress.
BUG=406487
Review URL: https://codereview.chromium.org/
534953002
Cr-Commit-Position: refs/heads/master@{#294775}