Implement progress to NanAsyncWorker (WIP)

Additionally corrected some minor lint issues.
This is a use-after-free: you're calling uv_close() from the destructor but it's not safe to release the handle's memory until the close callback has been called.  What you could do is turn `async` into a `uv_async_t*`, new the memory in the constructor, close it here and pass a close callback that deletes the handle.  Make sure to reinterpret_cast the `uv_handle_t*` to `uv_async_t*` in the close callback or you'll be deleting the wrong amount of memory.