Fix three bugs in the translation.

1. When returning from the try or catch blocks of try/finally, a thunk
   is passed to the finally block and applied in tail position with
   respect to the block.  This thunk contained the evaluation of the
   return value, violating the required evaluation order.

2. The initially scheduled microtask was not wrapped in try/catch to
   propagation errors to the completer.

3. 'is' expressions were printed with 'as' by the pretty printer.