Provide more public API to inspect MonoTypes, MonoClasses and MonoMethodSignatures.
Merge pull request #786 from xplicit/master

fix DivideByZeroException in Random.Next()
Don't redeclare desc in mini_create_ftnptr on ppc64
Merge pull request #787 from directhex/master

Don't redeclare desc in mini_create_ftnptr on ppc64
Add Interlocked{Read,Write}{8,16,Pointer} functions.
Fix the semantics for System.Threading.Volatile methods.

This is a bit tricky. The System.Threading.Thread.Volatile* methods
don't actually guarantee atomicity; all they guarantee is that the
runtime will insert acquire barriers for loads and release barriers
for stores. The methods in the System.Threading.Volatile class,
however, require both barriers *and* atomicity.

So, we need an entirely separate set of icalls for the Volatile
class in order to get the right semantics there.

These APIs are insane.
Fix mono_gc_wbarrier_generic_store_atomic semantics.

It should ensure that stores are fully atomic with barriers.
[runtime]Properly calculate the bitmap of valuetype [ThreadStatic] variables.

We must account that a valuetype field offset is relative to a boxed instance
and TLS memory stores a valuetype unboxed.
Add a --with-llvm=<llvm prefix> argument to configure to make the location of llvm-config explicit, instead of reading it from the PATH, which might be different on a reconfigure.
Move mono_get_optimizations_for_method to mini.c, since driver.c is only included in binaries, not libraries.
Add OrderedDictionary to the mobile profile.

Requested in support case #49635.
Prefix internal variables with `mono_`.
[runtime] Fix the sparc build.
[runtime] Fix the windows build.
Add new tests
When looking for base implementation of generic MVAR methods use non-inflated parameter types. Fixes #15523
Tests update
[linker]: Also reference all type-references for LinkAction.Link and Save.
[runtime] Promote the reference queue API to the public.
[runtime] Improve the docs on reference queues a bit.