wasm: implement promise.throwTo() for async JSFFI exports
This patch implements promise.throwTo() for wasm backend JSFFI
exports. This allows the JavaScript side to interrupt Haskell
computation by raising an async exception. The patch also simplifies the JSFFI import blocking mechanism: previously we would push a custom stg_jsffi_block
stack frame, but now we can simply use the good old MVar
for blocking.
Edited by Cheng Shao