[mono][jit] Add an option to use an mrgctx for all gshared methods. (#82981)
Enable it by default on WASM.
In this mode, all gshared methods get an mrgctx, which means they can access
their data using a simple load from the mrgctx instead of having to call
a rgctx fetch trampoline.
Upsides:
- much simpler.
- faster access to gshared data
- smaller code and data size in the AOT case
- if enabled by default on all platforms, large amount of gshared
code can be removed
Downsides:
- the methods have to initialize their mrgctx in their prolog
- on non-wasm platforms, indirect calls to gshared methods
(like virtual calls) will need to use rgctx trampolines more often
to pass the mrgctx.