Remove all AsyncListener JS code

Squashed for simplicity. There are also changes in the naming of some of the native API's so what it's called actually reflects what is going on. Also added a few TODO's, etc.

Review, comment, and if necessary I'll break up the commits into relevant segments.

Also, didn't add https://github.com/tjfontaine/node/commit/6a74d6c to the changes. If that conditional is hit then there's a bug in the code. I'd rather add an `ASSERT()` or the like that can be reported instead of silently ignored.

/cc @tjfontaine @indutny @orangemocha
@trevnorris Ok. I went through all `fs` functions and tried to identify which functions had this issue, here's [a gist with some code that shows which functions are affected](https://gist.github.com/misterdjules/a50cda9bb52d15589177). It reads on the standard input to show that `fs.read` is also affected, so if you run it it'll block until it gets EOF on stdin. It also writes to a file named `foo.txt` in the current directory, so use it carefully if you have any data in such a file.
 
I did not write a test for every function in the `fs` module, but read the source and wrote a test each time the code looked like the context was not set to the request object. I hope it helps!