Adds a handle watcher and test for Dart.

MojoHandleWatcher.Start() spawns an isolate that calls waitMany on a set of handles on behalf of application isolates.

This CL also adds a class MojoHandle that deals with communication with the MojoHandleWatcher isolate and provides a Dart Stream interface.

I've also enabled the new async/await syntax for tests. I think it makes things a bit cleaner.

Regarding the leaking of handles, it turns out that there is a mechanism in the Dart VM exposed in the native API for running callbacks on GC. I think the right place to attach those is to instances of MojoHandle, but I'll do that in a separate CL.

BUG=
R=abarth@chromium.org

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