Add an .npmignore file.
Use recast.visit instead of recast.types.traverse.

Notice how the post-order traversal in lib/visit.js is now completely
trivial: all we have to do is call this.traverse(path) at the beginning of
the visitor methods.
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.