Improve ABCREM on 64-bits architectures

Array indexes can be 32-bits integers even on 64-bits
architectures. This causes most loops to fail Array Bounds Checking
REMoval because the index is sign-extended before the check (see
mini_emit_ldelema_1_ins).

Sign-extending an I4 to I8 preserves its value, hence it is possible
to propagate the relation between the variables.
[runtime] Call mono_class_setup_methods () before accessing klass->method.count. Fixes #16883.
[runtime] Avoid RuntimeHelpers.EnsureSufficientExecutionStack () failing on windows. Works around #16776.
[jit] Emit calls to class init trampolines for fields accesses inside inline methods in AOT mode. Fixes #16461.
[sdb] Add async variants to the InvokeMethod methods.
Merge pull request #852 from ranma42/abc-64bits

Improve ABCREM
[jit] Fix the handling of OP_ISUB_IMM in abcrem.
[runtime] Fix yet another metadata problem with dynamically created types. Fixes #14977.
[jit] Save/restore all-callee saved registers in methods using some atomic opcodes on x86, since the opcode implementations use these registers, and the push/pop code used by these opcodes is not async safe, since the unwind code doesn't know about it. Fixes part of #16808.
New test
[mcs] Method group caching needs to consider type arguments as well. Fixes #17059
[System.Web] Clean up assembly level attributes.
[mcs] Emit Debuggable attribute. Fixes #16924