Implemented a new system to provide a context-specific global rooted object
on which other casses may attach arbitrary objects which should not be sweaped
away by the garbage collector.
Although the system clobbers context-specific user data pointer by using
JS_GetContextPrivate() and JS_SetContextPrivate(), it also exports two
functions to perform the same functionality if it was required:
js_GCRoot_udata_get() and js_GCRoot_udata_set().
It is important to call js_InitGCRoot() after JS_NewContext() and to
call js_DestroyGCRoot() before JS_DestroyContext() in applications which
depend on this library (such as js_pgsql.[ch]).