test: make test runner run persistent handle tests

* Add a target to test/cpp/binding.gyp so the persistent.node native
  add-on gets built.

* Rename test/js/persistent.js to test/js/persistent-test.js to make
  it get picked up by `npm test`.
nan: don't reinterpret_cast Persistents

When creating a Local<T> from a Persistent<T>, don't assume that it is
safe to take the address of the Persistent<T> and reinterpret_cast it
to Local<T> when Persistent<T>::IsWeak() == false.  That logic works
*most* of the time but it breaks down badly when the storage cell is
freed and/or cleared.  Contrived example:

    Persistent<Function> persistent_handle;
    NanAssignPersistent(Function, persistent_handle, /* ... */);
    Local<Function> fun = NanPersistentToLocal(persistent_handle);
    NanDispose(persistent_handle);
    fun->Call(v8::Context::GetCurrent()->Global(), 0, NULL);  // BAM!

Add a regression test to that effect.  Most visible in debug builds,
it produces the following error message:

    #
    # Fatal error in ../deps/v8/src/handles-inl.h, line 69
    # CHECK(location_ != __null && !(*location_)->IsFailure()) failed
    #
Merge pull request #60 from bnoordhuis/fix-unsafe-persistent-unwrapping

Fix unsafe persistent unwrapping