Asyncprogress

Rebased and fixed. Replaces #175 and #181. Closes #169.
Wierd place to be having this discussion :)  Should open an issue to track things related to the next release.
However out of curiosity, if we don't already, is there any reason we cannot provide more overloads on NanNew such that you could write something like NanNew("something") instead of NanNew<String>("something"), or NanNew(133.7)?  Additionally, I know we were discussing having `nauv.h`, and consensus is splitting probably sucks, but has anyone ever considered splitting nan.h such that you can use the majority of it with pure v8 (as opposed to node)?  I am working on a v8 project for Android and have ended up writing my own garbage templates that essentially mirror nan's functionality, would be nice to be able to share code.