JSCLass callbacks now use JSHandleObject/Id types

All functions which are callbacks for JSClass, now have new types
which wraps the Objects in an extra pointer. We need to cast and
then derefence these objects.

https://bugzilla.gnome.org/show_bug.cgi?id=690982
update for JSClass prototype changes

JS_FinalizeStub no longer exists. JSCLASS_MARK_IS_TRACE flag is no longer required.
JSClass prototype has some changes to the optional members, xdrObject and hasInstance
have been removed, reserved has been moved to the end of the prototype.

https://bugzilla.gnome.org/show_bug.cgi?id=690982
Misc API changes

E4X is disabled by default in esr17, re-enable this. jscntxt.h is no longer a public header
and replace some deprecated API, with equivalent calls.

https://bugzilla.gnome.org/show_bug.cgi?id=690982
byteArray: update PropertySpec for new API

For some reason the setter fails to get called when JSPROP_SHARED
is set.

https://bugzilla.gnome.org/show_bug.cgi?id=690982
temporarily disable two failing tests

These calls to localeCompare are supposed to fail, however they
cause the testcase to fail with 'function() undefined'.

https://bugzilla.gnome.org/show_bug.cgi?id=690982
Add wrappers for removed api, JS_NewNumberValue and JSVAL_IS_OBJECT()

Both these api are deprecated and removed. For now add wrappers to compat.h that
provide equivalent functionality.

https://bugzilla.gnome.org/show_bug.cgi?id=690982
Replace context with runtime in GC Functions/Callback.

Upstream are moving toward each runtime only having a single context. As such
all GC functions (except JS_MaybeGC), now take runtime as the argument, rather than
the context.

https://bugzilla.gnome.org/show_bug.cgi?id=690982