build: switch to mozjs-24

https://bugzilla.gnome.org/show_bug.cgi?id=711046
update for changes in options

JSOPTION_STRICT rename JSOPTION_EXTRA_WARNINGS
JSOPTION_METHODJIT removed since JaegerMonkey is gone, use JSOPTION_BASELINE instead

https://bugzilla.gnome.org/show_bug.cgi?id=711046
update delete property in JSClass definitions to use JS_DeletePropertyStub

https://bugzilla.gnome.org/show_bug.cgi?id=711046
Add a wrapper for JS_GetGlobalObject

Context global object is only available through a private api now, create a wrapper that emulates the
old api. Context globals will be going away in the future.

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

JS_EncodeStringToBuffer takes add context as first argument,
JS_NewRuntime adds a JS_NO_HELPER_THREADS flag
Update to new JS_Call*Tracer API

https://bugzilla.gnome.org/show_bug.cgi?id=711046
update for JS_GetPrototype api change

https://bugzilla.gnome.org/show_bug.cgi?id=711046
profiler: convert to new JSAbstractFramePtr api and update callbacks for api change

https://bugzilla.gnome.org/show_bug.cgi?id=711046
Adapt to utf8 changes

JS_SetCStringsAreUTF8 has been removed and internally spidermonkey no longer handles
utf8 strings. There is a compiletime option setUTF8 that needs to be set, this change
requires using JS::Evaluate. Additionally we need to handle utf8 encoding in the
gjs_string functions. Finally JS_BufferIsCompilableUnit no longer has a utf8 argument

https://bugzilla.gnome.org/show_bug.cgi?id=711046
context: handlify locale callbacks

https://bugzilla.gnome.org/show_bug.cgi?id=711046
Compartments are compulsory now

We need to add AutoCompartment calls at all entry points

https://bugzilla.gnome.org/show_bug.cgi?id=711046
JS_SetVersion has been removed, JS Version is now set on the compartment instead of context.

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