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
KeyPairPresistence now tries to fix folder permissions.
An exception is no longer thrown if the folder permissions can be fixed.
Fixes bug 19274.
Fix scrolling in SWF.ListView.EnsureVisible(int index)

This fixes https://bugzilla.xamarin.com/show_bug.cgi?id=22483
[eglib] Fix stderr output redirection.
[runtime] Add Steve Reid's public domain SHA1 code.
[runtime] Add functionality for AOTing assemblies on demand when they are first used. Configurable using a new "aotconfig" config element, i.e. <aotcache assemblies="mscorlib System"/>.
[sdb] Fix the checking of the handshake message.
[bcl] Catch exceptions thrown by SerialPortStream.Dispose () when called from the finalizer. Fixes #15514.
Fix mono_marshal_free_ccw (). Fixes #22414.
[sgen] Refactor pointer queue out of pinning code.
[runtime] Add an adapter between the MonoPrintCallback and the eglib GPrintFunc types.
[runtime] Fix a problem introduced by 522663cdfad5860ffbb84b2827b9d0156c4ed623.
[runtime] Fix reading past the end of a string when setting the native thread name.
[jit] Avoid uninitialized fields in the MonoDelegateTrampInfo structure.
[jit] Avoid hardcoding tls offsets into the aot versions of the monitor enter/exit trampolines on amd64.
[aot] Fix full-aot support when the AOT cache is enabled.