Bug 15574. XML deserialization recursion: add array type to known_types?

One way to prevent https://bugzilla.xamarin.com/show_bug.cgi?id=15574 is to add the problematic array type to the `known_types`.

On the other hand, this might not be the intended use of `known_types`. In that case, perhaps a better fix would be to guard against recursion in the `foreach` loop:

	if (t != type)
		RegisterTypeAsKnown (t);
Bug 15572. Lookup KnownTypeCollection element types in MSSimpleNamespace

This patch prevents the problem in https://bugzilla.xamarin.com/show_bug.cgi?id=15572. This change allows the DataContractSerializer to deserialize DataMembers that use an array KnownType, at least for the test case in the bug report.
SqlBulkCopy Implementation

This are the code changes to get the SqlBulkCopy procedure working on
mono.
Support for DispIdAttribute in GetIdsOfNames

License: This patch is under the MIT/X11 license.
Fixes Xamarin Bug 16742:  XmlConvert.ToDateTime(string, XmlDateTimeSerializationMode) throws index out of bounds exception

Fix for bug + added tests for method
XmlConvert.ToDateTime(string, XmlDateTimeSerializationMode)
Additional tests for Xamarin Bug 16742 + style enhancements
Cleaned up the using statements in DateTime tests
If HTTP charset header is empty, do not append content encoding to Content-Type header
Add unit test for Content-Type header with and without charset set
Prevent exception in finalization of Form class

If initialization of the Form class or one of its base classes fails, possibly because X11 is not available and the constructor of the parent Control class throws an exception, the owned_forms member is not initialized. This results in a NullReferenceException during initialization, if the error that occurs during construction is handled.

Stack traces:
Unhandled Exception:
System.TypeInitializationException: An exception was thrown by the type initializer for System.Windows.Forms.WindowsFormsSynchronizationContext ---> System.TypeInitializationException: An exception was thrown by the type initializer for System.Windows.Forms.XplatUI ---> System.ArgumentNullException: Could not open display (X-Server required. Check you DISPLAY environment variable)
Parameter name: Display
  at System.Windows.Forms.XplatUIX11.SetDisplay (IntPtr display_handle) [0x00000] in <filename unknown>:0
  at System.Windows.Forms.XplatUIX11..ctor () [0x00000] in <filename unknown>:0
  at System.Windows.Forms.XplatUIX11.GetInstance () [0x00000] in <filename unknown>:0
  at System.Windows.Forms.XplatUI..cctor () [0x00000] in <filename unknown>:0
  --- End of inner exception stack trace ---
  at System.Windows.Forms.Theme.get_MenuAccessKeysUnderlined () [0x00000] in <filename unknown>:0
  at System.Windows.Forms.SystemInformation.get_MenuAccessKeysUnderlined () [0x00000] in <filename unknown>:0
  at System.Windows.Forms.Control..ctor () [0x00000] in <filename unknown>:0
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:.ctor ()
  at System.Windows.Forms.WindowsFormsSynchronizationContext..cctor () [0x00000] in <filename unknown>:0
  --- End of inner exception stack trace ---
  at System.Windows.Forms.Control..ctor () [0x00000] in <filename unknown>:0
  at System.Windows.Forms.ScrollableControl..ctor () [0x00000] in <filename unknown>:0
  at System.Windows.Forms.ContainerControl..ctor () [0x00000] in <filename unknown>:0
  at System.Windows.Forms.Form..ctor () [0x00000] in <filename unknown>:0
  at AutoCRCheck.frmOptions..ctor () [0x00000] in <filename unknown>:0
  at (wrapper remoting-invoke-with-check) AutoCRCheck.frmOptions:.ctor ()
  at AutoCRCheck.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for System.Windows.Forms.WindowsFormsSynchronizationContext ---> System.TypeInitializationException: An exception was thrown by the type initializer for System.Windows.Forms.XplatUI ---> System.ArgumentNullException: Could not open display (X-Server required. Check you DISPLAY environment variable)
Parameter name: Display
  at System.Windows.Forms.XplatUIX11.SetDisplay (IntPtr display_handle) [0x00000] in <filename unknown>:0
  at System.Windows.Forms.XplatUIX11..ctor () [0x00000] in <filename unknown>:0
  at System.Windows.Forms.XplatUIX11.GetInstance () [0x00000] in <filename unknown>:0
  at System.Windows.Forms.XplatUI..cctor () [0x00000] in <filename unknown>:0
  --- End of inner exception stack trace ---
  at System.Windows.Forms.Theme.get_MenuAccessKeysUnderlined () [0x00000] in <filename unknown>:0
  at System.Windows.Forms.SystemInformation.get_MenuAccessKeysUnderlined () [0x00000] in <filename unknown>:0
  at System.Windows.Forms.Control..ctor () [0x00000] in <filename unknown>:0
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:.ctor ()
  at System.Windows.Forms.WindowsFormsSynchronizationContext..cctor () [0x00000] in <filename unknown>:0
  --- End of inner exception stack trace ---
  at System.Windows.Forms.Control..ctor () [0x00000] in <filename unknown>:0
  at System.Windows.Forms.ScrollableControl..ctor () [0x00000] in <filename unknown>:0
  at System.Windows.Forms.ContainerControl..ctor () [0x00000] in <filename unknown>:0
  at System.Windows.Forms.Form..ctor () [0x00000] in <filename unknown>:0
  at AutoCRCheck.frmOptions..ctor () [0x00000] in <filename unknown>:0
  at (wrapper remoting-invoke-with-check) AutoCRCheck.frmOptions:.ctor ()
  at AutoCRCheck.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0

---------------------------------------------------------
Handling the previous exception results in the following exception:

System.NullReferenceException: Object reference not set to an instance of an object
  at System.Windows.Forms.Form.Dispose (Boolean disposing) [0x00000] in <filename unknown>:0
  at AutoCRCheck.frmOptions.Dispose (Boolean disposing) [0x00000] in <filename unknown>:0
  at System.ComponentModel.Component.Finalize () [0x00000] in <filename unknown>:0
[arm] Use d0/d1 as fp scratch regs on non-hard float platforms. Hopefully fixes #17597.
fix typo in mono_counters_cleanup leading to a double free

Signed-off-by: Etienne CHAMPETIER <etienne.champetier@fiducial.net>
int a[0], malloc(0), memcpy(a,b,0), memcmp(c,d,0) doesn't make much sense

This remove a scan-build warning

Signed-off-by: Etienne CHAMPETIER <etienne.champetier@fiducial.net>
[system.xml] Add more invalid argument checks
[system] Updates to WebUtility decoders and encoders
[NTLM]: Add new 'NtmlSettings' class to hold the 'DefaultAuthLevel' property.

When the NTLM sources are compiled into System.dll, then we need to store the
configuration variables there and peek/poke it in Mono.Security.
[mcs] Don't report any not applicable operator errors during constant folding.
[xbuild] Fix mscorlib resolution for custom frameworks

Now that mcs supports multi-targeting, we can use the MSBuild 4.0+
system of finding mscorlib.dll in the target framework folders and
passing it to the compiler, along with the /nostdlib argument.

Like MSBuild, the old NoStdLib property can be set to true to disable
passing mscorlib.dll to the compiler, and the new NoCompilerStandardLib
property can be set to false to disable passing /nostdlib to the compiler.

This makes custom target frameworks work correctly without having to
override CscExe with a wrapper script.
[xbuild] Fix typo that broke 2.0/3.5 targets
[xbuild] Make ToolLocationHelper work better for 2.0/3.5

Mono keeps unversioned tools in the 4.5 directory, so look there
for 2.0. Additionally, most 3.5 tools are in the 2.0 directory.