Registers `callback` under `name` so the page's JavaScript can call
into LPC:
// JS (Promise of the string result)
const sum = await Module.fluffos.callLPC("add", "2", "3");
The callback runs on the next driver tick (proper driver context,
like call_out) as:
mixed callback(string *args, int id);
`args` are the JavaScript arguments as strings; `id` is the call id.
The return value settles the page's Promise: a string is passed
through as-is, other values are %O-formatted (integers and floats
print plainly; return a JSON-encoded string for structured data). A
runtime error in the callback, or a destructed owner object, rejects
the Promise.
A string callback names a function called on the registering object.
Re-registering a name replaces the previous entry; calling with only
`name` unregisters it. Returns 1 when a callback was registered, 0
when the name was (or is now) unregistered.
Like call_out(1), the callback runs without a command context:
this_player() is 0 inside it.
Only available on the WebAssembly build (guard LPC code with
`#ifdef __PACKAGE_JSBRIDGE__`).