Transform async functions and await expressions

This functionality depends on my `async-await` branch of the Esprima parser (pull request: https://github.com/ariya/esprima/pull/234).

The `wrapGenerator.async` function is heavily inspired by @lukehoban's `spawn` function: https://github.com/lukehoban/ecmascript-asyncawait#spawning

Note that `Promise` is left as a free variable, so you have to bring your own `Promise` polyfill.

Adding a bunch of tests for this functionality is my next order of business.

cc @amasad @thomasboyt @subtleGradient @bklimt @lukehoban @arv