Fix minor memleak

Instead of just dropping empty strings from the assemblies_path array,
they should be freed to avoid leaking them.
Put the "degraded allocation" warning behind a log level.

We generally shouldn't print stuff to stdout/stderr unless we're
about to fatally crash or something.
Canonicalize folders when setting up assemblies_path

When MONO_PATH contains relative folders, they are meant as relative
from where the application is launched, not from the current directory
of each assembly load.

Fixes #19380.
Document MONO_PATH behaviour for relative paths

Tha previous behaviour of MONO_PATH for relative paths (that implied
using the paths as relative to the current directory when loading
assemblies) was not yet documented and led to some failures when
executing tests.

In order to fix the failures, a new behaviour has been introduced:
relative paths are resolved at launch time, so that the folders which
are examined when loading assemblies do not depend on the current path
of the program.

This patchset is released under the MIT license.
[mcs] Fix using type relationship check for type parameters. Fixes #18639
[mcs] Inflate anonymymous method with correct type arguments when async this requires hoisting in parent type. Fixes #19176
Merge pull request #1013 from ranma42/fix-19380

Fix 19380
[mcs] Don't apply reference type is optimization for dynamic expressions. Fixes #19423
[Mono.Debugger.Soft] Make the ObjectMirror.GetValues() exception a bit more useful
[Mono.Debugger.Soft] Fixed the ILInterpreter to catch ArgumentExceptions from ObjectMirror.GetValue()
Support the datetime2 parameter type
[sgen-bridge] Don't merge xrefs in DFS2. Speeds up some cases by orders of magnitude.
[sgen-bridge] New xrefs graph optimization for nodes with incoming order 1.
[sgen-bridge] Make merging in old xrefs algorithm much more efficient.

Instead of merging the two lists by keeping them sorted, use the flag on
the SCCs the indicate whether an SCC has already been merged in, and
just append it if not.  This makes it as fast as the new algorithm on one
test case where it was pathologically slow, while not exhibiting another
pathology that the new algorithm has.
[sgen] Heavy hash table statistics.
[sgen-bridge] Remove dead DynArray merging code.
[sgen-bridge] Copy-on-write for DynArrays.

This eliminates a pathological case for the old algorithm, where a
large array of SCCs is copied from one node to the next without
modification.
[sgen-bridge] Added test case with bridge performance pathologies.

This is not meant as part of the test suite, but as a reference for
where the bridge has performance issues.
[sgen-bridge] Remove single-reference non-bridge objects from graph.
[sgen-bridge] Debugging option to dump whole bridge object graph.