Boilerplate

Change the async function body boilerplate.  Instead of using a Completer and scheduleMicrotask, switch to using new Future.microtask and .then chaining.  With the previous approach, there was a lot of code generated to propagate exceptions in the same way that .then already does.