use NAN for Node 0.8->0.11+ compatibility (replace batons with NanAsyncWorker)

This is an alternative PR to #194 which replaces the manual baton management with the `NanAsyncWorker` base class which is designed for this simple async work pattern and eliminates most of the manual management of persistents, deleting created objects and the abstracts the general workflow of v8->uv->exec->uv->v8.

See [this comparison] to the nan branch to see what changes.