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
ClientWebSocket: SendAsync endOfMessage inverted.

endOfMessage should indicate whether or not additional message parts will follow the current one. Currently, the meaning in ClientWebSocket.cs is inverted: !endOfMessage indicates that no more parts will follow the current one.

See the WebSockets RFC, 'frame-fin' at the top of http://tools.ietf.org/html/rfc6455#page-31.
Also see the MSDN docs for SendAsync: http://msdn.microsoft.com/en-us/library/system.net.websockets.websocket.sendasync(v=vs.110).aspx
Test ClientWebSocket.SendAsync EndOfMessage
Missing setting disposed to true
Missing Args checks.
Added System.IdentityModel.Tokens.BootstrapContext including tests.
Test WebClient.UploadFileTaskAsync ContentType. Covers 19529.
Test connection reuse.
Allow stream reuse when InputStream has been disposed.
If InputStream is disposed FlushInput now sets it to null so a new one can be created.
[sgen] Add major concurrent collector stw time to "Major GC time" counter
[sgen] Add concurrent collector counter for time spent during concurrent phase
[sgen] Don't get time twice at the same time.
Test Rss20ItemFormatter.ReadFrom Guid. Covers 23262.
Rss20ItemFormatter.ReadFrom now sets Id when guid is PermaLink.
Fixes 23262.
Merge pull request #1307 from esdrubal/servicemodelrss

Rss20ItemFormatter.ReadFrom now sets Id when guid is PermaLink.
Test Json deserialization of a floating-point number as object.
Covers 21583.
Improved Json deserialization of floating-point numbers.
When DataContractJsonSerializer was created from type object, deserialization of floating.point numbers was not possible.
Fixes 21583.
[mdoc] No longer documenting explicitly implemented private interface members.

https://bugzilla.xamarin.com/show_bug.cgi?id=18411

If a class explicitly implements an internal interface, those members will no
longer be documented, nor will the interface show up in the class' signature.
This allows for a library to hide internal implementation details that an end
user would not be able to take advantage of (ie. can't cast to internal
interface to call methods).

Includes test (check-monodocer-internal-interface)  added to makefile.