Transform async functions and await expressions.

Closes #100.
Add async function test harness, with Promise runtime polyfill.
Add very basic tests of async functions and await expressions.
Add a test of awaiting dependent promises out of order.
For async functions, pass null as the outerFn argument to wrapGenerator.

If providing a reference to the outer function became necessary for async
functions, to really get it right we'd have to transform each async
function declaration into a named function expression assigned to a
variable of the same name, hoisted to the top of the enclosing block,
analogous to the treatment of generator function declarations introduced
by b9e64e121ebf5a5f74efdd7b60b4d4e23f20b1cc.