Implement the `@@iterator` method on generators.

Per the spec [1], all this method does is return the generator itself. This is necessary to make generators from regenerator work properly with the spread element, which uses the `@@iterator` property on objects.

[1]: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-generator.prototype-@@iterator
Merge pull request #120 from eventualbuddha/add-generator-at-at-iterator

Implement the `@@iterator` method on generators.
Move @@iterator to Generator.prototype and re-minify runtime/min.js.
Bump NPM version to 0.4.9 in preparation for publishing.
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.