test with local script variable
reuse existing V8 object by ptr address

When C++ is calling a wrapped method, the first
parameter passed is $this, however, a new V8 object
is created for the same native pointer that is already
existing. This causes all properties assigned in javascript
to be lost while inside the overriden method and also
increases memory usage and decreases performance while
creating the new instanance.

This patch tracks allocated javascript objects by the native
object address and passes the already constructed JS object
if its native pointer is being passed in the method arguments.
Merge branch 'master' into feature/reuse_v8_objects_by_addr
walk js prototype chain to retrieve native ptr
fix test: only reuse non const pointers
Merge branch 'feature/allow-js-subclasses'