Cause MenuDeactivate event to be delivered when appropriate

This is achieved by moving the FireMenuDeactivate call to
MenuStrip.Dismiss and causing it to be called in a couple of places
where it ought to be.
X11: improve handling of WS_EX_TOPMOST

Currently, WS_EX_TOPMOST is handled by making the window transient-for
the root window.  I was unable to find any documentation that indicated
that this would have the desired effect.  Instead, use SetTopmost to
set _NET_WM_STATE to _NET_WM_STATE_ABOVE, per EWMH.

Also, use XMapRaised to raise topmost windows to the top of the stack
when mapped, as a last ditch effort to support window managers that
do not respect _NET_WM_STATE, such as xmonad.

This fixes an issue I encountered when running a winforms application
in xmonad, whereby drop down menus would fail to re-open if windows
had been re-arranged after the menu was first opened (in reality,
the menu was hiding behind the form).
Use IPPROTO_TCP instead of SOL_TCP for cross-platform compatibility.
Ignore the gdiplus dllmap on Windows.
minor fix for bug 9520:
- socket configuration attempts to determine if system supports ipv6
- checks app configuration, but configuration throws exception if called from embedded context
- solution is to put a try/catch guard and fall to an alternative test for ipv6
Refactorized convert(byte[], int, ...), now uses the pointer version.
Refactorized Convert(char[], int, ...) to use the pointer version.
Implemented method 'IsUnknownSurrogate()'.
removed index check because (1) it cannot be checked in this context and (2) it
only explains when a bad sequence started in the current or past buffer (in
this case it would take a negative value).
removed index check because (1) it cannot be checked in this context and (2) it
only explains when a bad sequence started in the current or past buffer (in
this case it would take a negative value).
Rewrite of core coder & decoder functions to fix several bugs and limitations, and improve error handling.
Merge remote-tracking branch 'upstream/master'
Disable BOM preamble in UTF8 by default (following best practices).
some minor code style changes
Merge branch 'master' of https://github.com/mono/mono
Fix race condition in WebConnectionStream

See https://bugzilla.xamarin.com/show_bug.cgi?id=1553
[xbuild] Actually delete common files (CopyLocal) during Clean.

The common files that should be deleted during Clean (see 4c37deb)
weren't actually written to the CleanFile, as they were stored in
FileWrites after it was already used to create CombinedFileWrites.
MS.NET implementation returns 1000 not 625.
bugfixed returned charsUsed counter
MS.NET implementation returns 1000 not 625.