Update Node bindings, use nan for compatibility

The current node bindings will not work across different versions of NodeJS. This patch uses nan to get them working more consistently across node versions. 

Also does some other stuff:
- Updated bindings.gyp which were missing some essential files
- Adds a basic JavaScript test to ensure things were exported correctly
- Included the new `glslopt_target` features into the JS bindings