[Caching] Adds some checks for overflow and valid bounds on heap indexes.
Rename the JIT test classes so they can be run on MT too.
Run more runtime tests on wrench.
Make threadpool_clear_queue resistant to concurrent runtime shutdown.

If threadpool_clear_queue is called while the runtime is been shutdown
it might crash since the queue will have been cleaned.

So now we guard against null queues and bail out from appending
the existing jobs if shutdown was initiated.
Add mono_thread_attach_full function that can forces a thread to be attached during shutdown.

A thread must be forcibly attached during shutdown if the runtime needs it to run and needs it
to be functional.
Fix race condition between a domain unload and a runtime shutdown.

When a regular runtime shutdown and a domain unload starts mostly in parallel
it might happen that the unload initiator will deadlock waiting on the unload thread
for two reasons:

The unload thread will block when attaching as the runtime believe it's better
to not finish it as it's going down. To fix this we now use mono_thread_attach_full
and force it to be attached.

The unload initiator might deadlock on the wait loop if the shutdown initiator aborts
it instead of the unload thread. This happens if the unload was done from outside of
the domain been teared down.

The fix here is to add a variable that the initiation test on every loop, which is the
right thing to do when using wait loops on handles. This might degrade into a busy
loop when the above race condition happens. It's rare enough that it's not worth
fixing it now.
Add regression test for wrench bug where an appdomain unload would race with shutdown and deadlock.
[System.ComponentModel.Composition]: Disable RefEmit classes on MonoTouch.
Fix the desktop test suite.
[ios] Remove code path using UseMachineKeyStore since it's not available (and bring extra code inside applications)
Resolve switch cases without look aheah look-up. Fixes #12583
Prevent multiple threads to populate the keyword table
Complex.ToString must not pass format string to string.Format

Type: System.Numerics.Complex

IFormattable format strings and string.Format formats are different
and incompatible. For example, `x.ToString("G")` and `x.ToString(null)`
must be equivalent to `x.ToString()`, but they behave very differently
with string.Format, where the former just returns "G" and the latter
throws an ArgumentNullException.

Changes System.Numerics.Complex.ToString to pass the format string to
double.ToString instead of string.Format.

Adds UnitTests for the changes in new ComplexTest.cs file
Rework the gsharedvt code to add support for vtypes with arbitrary size.
Disable gc-altstack.exe on wrench until it is fixed (#12610).
Fix a typo in e5c45f1161604733b116a0a83782c08f74fb3127.
Fix a couple of warnings in appdomain.c and threads.c.
Eliminate the use of localloc in gsharedvt methods which have no gsharedvt locals.
Renamed target AssignProjectConfigurations to AssignProjectConfiguration (without the s) to better match .NET and other target files that call this target directly by name
Fix binding redirect version comparison. The old code would do the wrong comparison for the following case: oldVersion=0.0.0.0-4.0.0.0 and aname version 2.2. The major version is in range, but the minor was incorrectly considered out of range.