Avoid double negation in Emitter.prototype.jumpIfNot.
Move Context.prototype.keys to wrapGenerator.keys.

This function doesn't need to be a method of the Context, and might be
useful externally. More importantly, it's a similar function to
wrapGenerator.values, which will definitely need to be available
externally (to support for-of loops outside of generator functions).
Support for-of iteration over iterables, generators, and Arrays.

Closes #27.
Allow yield* to accept any iterable argument.

Closes #108.
Re-minify runtime/dev.js.
Add runtime support for async functions.
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.