Fixed  g_win32_getlocale

Implemented g_win32_getlocale function to return correct locale.
Replace underscores with hyphens when reading system locale

The locale descriptions in
<mono/metadata/culture-info-tables.h:culture_name_entries> use 'xx-yy'
format, where most current systems use 'xx_YY', including Mono itself in
<eglib/src/gmisc-win32.c:g_win32_getlocale>. In normalizing the system
locale for comparison, we should switch any underscores for dashes.

Mono used to do this, but commit
be532638f5e2160272ccf32e7a39ba7b2301a65b removed this behavior, which
causes System.Globalization.CultureInfo.CurrentCultureInfo to always
point to the invariant culture on systems with LANG similar to xx_YY.

These changes are released under MIT/X11 license.
socket-io: make it possible to specify an interface index as a MulticastInterface SocketOption on linux.

On windows, a value to IP_MULTICAST_IF with a most significant byte of zero is interpreted as an interface index instead of an ip address.
This makes it possible to set the interface index from .NET as follows:
socket.SetSocketOption(SocketOptionLevel.IP,
SocketOptionName.MulticastInterface, IPAddress.HostToNetworkOrder(ifindex));

For this to work on other platforms, we need to detect this case and handle it with an ip_mreqn struct.
socket-io: pass MulticastOption InterfaceIndex into ip_mreqn imr_ifindex
[amd64] Use the IR based push/pop LMF code on all platforms except windows.
Fix a warning.
Fix a warning.
[amd64] Simplify the push/pop LMF code a bit more.
socket-io.c: merge #ifdef HAVE_STRUCT_IP_MREQN of network interface index and address

This commit and the related commits 11b2e351d887ef439ac377bc8137ba409965a8fb and af9fc5f16f4358d016d73a82684beacabadfe10c) are under the MIT license.
[amd64] Unify the register saving/restoring code for the fp/no-fp cases.
[sgen] Improve describe_ptr().

Don’t try to print the vtable if the major allocator knows it’s invalid.
Print bridge information.
[sgen] Implement our own qsort() so as not do deadlock.

qsort() may call malloc(), which can lead to a deadlock when the
world is stopped.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=16432.
[mcs] Optimize DefiniteAssignmentBitSet
[mcs] Arguments flow analysis needs to ignore out modifier.
LogicalSet/GetData implementation in CallContext
[mcs] Excluded methods should not take a part in flow analysis
fixed some warnings in mono-proclib.c

mono-proclib.c: In function ‘get_cpu_times’:
mono-proclib.c:600:24: warning: ‘sirq_ticks’ may be used uninitialized in this function [-Wmaybe-uninitialized]
   *sirq = (sirq_ticks) * 10000000 / hz;
                        ^
mono-proclib.c:598:22: warning: ‘irq_ticks’ may be used uninitialized in this function [-Wmaybe-uninitialized]
   *irq = (irq_ticks) * 10000000 / hz;
                      ^
mono-proclib.c:602:24: warning: ‘idle_ticks’ may be used uninitialized in this function [-Wmaybe-uninitialized]
   *idle = (idle_ticks) * 10000000 / hz;
                        ^
mono-proclib.c:596:29: warning: ‘system_ticks’ may be used uninitialized in this function [-Wmaybe-uninitialized]
   *systemt = (system_ticks) * 10000000 / hz;
                             ^
mono-proclib.c:594:23: warning: ‘nice_ticks’ may be used uninitialized in this function [-Wmaybe-uninitialized]
   *user = (user_ticks + nice_ticks) * 10000000 / hz;
                       ^
mono-proclib.c:594:23: warning: ‘user_ticks’ may be used uninitialized in this function [-Wmaybe-uninitialized]
[mcs] Reachability analysis of constant switch
[mcs] Run struct field assignment check on every exit point.
[mcs] Fix flow analysis of infinite for statement with breaks