Add support for value types to mono_object_to_string

The current mono_object_to_string implementation does not support value types. This patch adds support by unboxing value types prior to calling mono_runtime_invoke.
Fixed System.Text.Decoder.GetChars(byte*,int,char*,int,bool) to copy output into the char* buffer.
Fixed build breakage from my previous commit
Improved exception handling with vectored exception handling.
Now a native debugger can be used with soft debugger running without triggering any exception. Code provided by Jonathan Chambers:

* https://github.com/Unity-Technologies/mono/commit/e9f9f7170914c5caaff3e95e09f6f58ecced2a10
* https://github.com/Unity-Technologies/mono/commit/4c2e1db60ccb38e792545d595d85b12ff309a919
* https://github.com/Unity-Technologies/mono/commit/bd7e534aa7da49b89787b8c1b40e165a34c0e960
* https://github.com/Unity-Technologies/mono/commit/b885251a83969d243deabc56bb3d1495d4a971dc

From:

https://github.com/mono/mono/pull/724
Fixed MSVC build, ported to Visual Studio 2012.

From:

https://github.com/mono/mono/pull/724
Fixed incorrect pointer arithmetic on SGen for MSVC.

From:
https://github.com/mono/mono/pull/724
Fixed SGen build for MSVC

From:
https://github.com/mono/mono/pull/724
Merge pull request #708 from spicypixel/hotfix/mono-object-to-string

Add support for value types to mono_object_to_string
[aot] Align the static linking symbol.
[linker] Small string optimizations to avoid culture aware code paths
[linker] Add AssemblyAction.Save to enable the linker to re-write an assembly without actually linking it. Useful to remove references to PCL assemblies that are not really used (e.g. when only type forwarders are needed) [#13488]
[System.Core/Android] Android's libc.so doesn't export getpagesize()

Partially fixes: https://bugzilla.xamarin.com/show_bug.cgi?id=12739

Android's libc.so doesn't export getpagesize(3), resulting in an
EntryPointNotFoundException:

	System.EntryPointNotFoundException: getpagesize
	  at (wrapper managed-to-native) System.IO.MemoryMappedFiles.MemoryMapImpl.getpagesize ()
	  at System.IO.MemoryMappedFiles.MemoryMapImpl.Map (int,long,long&,System.IO.MemoryMappedFiles.MemoryMappedFileAccess,intptr&,int&)
	  at System.IO.MemoryMappedFiles.MemoryMappedViewAccessor.Create (long,long,System.IO.MemoryMappedFiles.MemoryMappedFileAccess)
	  at System.IO.MemoryMappedFiles.MemoryMappedViewAccessor..ctor (int,long,long,System.IO.MemoryMappedFiles.MemoryMappedFileAccess)
	  at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateViewAccessor (long,long,System.IO.MemoryMappedFiles.MemoryMappedFileAccess)

Android does provide getpagesize(3); it's just an inline function.

The full fix will require two parts:

 1. Update MemoryMapImpl to P/Invoke
    libmonodroid.so!monodroid_getpagesize()
 2. Add a libmonodroid.so!monodroid_getpagesize() export.

This commit implements (1).
[sgen] Disable freeing of OS memory on win32, it causes asserts because VirtualFree () fails.
Only build mscorlib in the monotouch_runtime profile.
[msvc] Avoid linking against libgc in the sgen configurations.
Fix warnings.
[msvc] Implement MONO_CONTEXT_GET_CURRENT () on the msvc build.