Properly convert COM error codes to C# exceptions

Also use additional information provided by IErrorInfo to fill in
exception details.

To make use of IErrorInfo on Linux a suitable implementation has to be
provided, e.g. by including libcom plus adding a mapping from
oleauth32.dll to the shared library that provides the implementation.

This completes mono bug 496138
(https://bugzilla.novell.com/show_bug.cgi?id=496138)
Set ErrorInfo in Marshal.GetHRForException

Marshal.GetHRForException had a MonoTODO because it needs to set
the errorinfo object so that exceptions get properly passed to
unmanaged code. Since not all managed exceptions have a corresponding
HR value but we might need to get to the original thrown exception
we implement a ManagedErrorInfo helper class that implements the
IErrorInfo interface but also stores the exception.

In GetExceptionForHR we check if the errorinfo we get is a
ManagedErrorInfo. If it is we return the exception stored in there
(if it converts to the same error code), otherwise we construct a new
exception.
[MWF] Partially implement Help.ShowHelp
[Cleanup] Removed .jvm.cs files that are no longer used

They were once part of a special Java target profile, but this is no longer used today.
[Cleanup] Removed net_1_1_java*.sources files

They were once part of a special Java target profile, but this is no longer used today.
[Cleanup] Removed net_1_1_java from Makefiles

It was once part of a special Java target profile, but this is no longer used today.
[Cleanup] Removed JavaEE csproj and sln files

They were once part of a special Java target profile, but this is no longer used today.
[Cleanup] Removed files that imported Java namespaces

They were once part of a special Java target profile, but this is no longer used today.
[Cleanup] Removed TARGET_JVM

It was once part of a special Java target profile, but this is no longer used today.
KeyPairPresistence now tries to fix folder permissions.
An exception is no longer thrown if the folder permissions can be fixed.
Fixes bug 19274.
[Sgen] Transport scan macros from sgen-descriptor.h to sgen-scan-object.h

This commit transport the scan macro from sgen-descritor.h to
sgen-scan-object.h. This is useful for modify at compile time
the scan macro according to the scan function.

I release this change under the MIT license.
[Sgen] Implement partial marking for big array of objects

This commit changed the gray stack to support work items. When a big
array of objects is marked, Sgen now create several work items. Every
work item rappresents a pieces of the array that must be scanned.
Since they are different pieces, the workers can now parallel scan
and mark the array, resulting in a better work distribution between
the workers.

I release this change under the MIT license.
[MSBuild] Make sure assembly references with extensions are located correctly
Tests serialization of XmlNode field with attribute XmlAnyElement.
Covers #3211.
Test SerializationCodeGenerator.
XmlSerializerTests was mostly testing XmlSerializationReaderInterpreter and XmlSerializationWriterInterpreter.
XmlSerializerGeneratorTests forces the usage of SerializationCodeGenerator while running XmlSerializerTests.
Changed UsageCount and generationThreshold to zero based.
Added GetTypeFullName, fixes wrong nullable valuetype names.
Replaced incorrect bool.ToString() by GetLiteral(bool).
Added missing XmlTypeMapping.IsAny logic.
This complements commit 05444c7c1c570db730f17b6d15dd66d3728b6.
Fixed serialization of XmlNode field with attribute XmlAnyElement.
Fixes #3211.