[corlib] Fix needing write permission when reading registry values. Fixes #25106

ToKey() ignores the setting parameter when calling RegistryKey.OpenSubKey() and
thus always asks for write permission. If you try to read read-only keys (say
HKLM without admin rights) it will fail with a  SecurityException.
[system] Fix soctec test to not block indefinitely
[system] Add test for #25137
[system] Replace System.Collections.Generic from reference sources
[mkbundle] fix execution for X.Android on Windows regarding dos2unix.

This fixes bug #25086 (Xamarin.Android). Details described there.

To fix the issue, we use #if XAMARIN_ANDROID to avoid that old cygwin-only
code path. (We are not sure if simply removing the old code still works,
so we don't remove that for now.)
[corlib] Remove duplicate FirstChanceExceptionEventArgs
Change 4.0 profile to metadata reference only profile
Added reference-assemblies submodule to fix the build
[corlib] Update SafeHandle dispose pattern to match .net. Fixes #25132
Use `git://...` instead of `git@...` for submodules.
gmcs script is no longer installed.

The intention is to make build failures easy to spot instead of silently upgrading
target framework from 2 to 4 and then fail down the road on e.g type ambiguity
caused by new 4.0 framework types or methods