Implements CallFunction with JS::MutableHandle<T> return type.

Also implements CallFunction with macros because otherwise we'd have to write twice as many functions manually.