Use `rvagg/nan`

Big refactor.

Works beautifully on v0.8.x and v0.10.x :)

Doesn't quite work properly yet on v0.11.x. It compiles, but segfaults in the Create c++ function :(

/cc @rvagg @kkoopa @Raynos @trevnorris