Change the async body boilerplate.

Previously: the boilerplate created a completer, scheduled a microtask
to run the translated body, and returned the future of the completer.
The microtask used the completer to complete the future with a value or
error as appropriate.

Now: the boilerplate creates and returns a Future directly via new
Future.microtask.  The future completes with a value by returning a
value, and completes with an error by throwing an exception.
Fix bugs in the translation, verify against tests.
Merge pull request #36 from kmillikin/boilerplate

Boilerplate
Support stack trace parameters and `on T catch` clauses.

Support them by adding an extra argument to the catchError callback for
stack trace parameters, and an extra argument to catchError itself for
'on T' clauses.
Merge pull request #39 from kmillikin/catch-handlers

Support stack trace parameters and `on T catch` clauses.
Merge pull request #41 from dart-lang/new-boilerplate

New boilerplate