Runtime test to reproduce threadpool+ProcessExit issue

Do make test-process-exit to run
Fixes threadpool+ProcessExit problem

The threadpool was being shutdown too early, before the ProcessExit event was fired.
This led to bugs such as NLog not shutting down
(http://nlog-project.org/2011/10/30/using-nlog-with-mono.html).
cominterop: Free IMarshal interface with the CCW.

This commit is licensed under MIT/X11.
Swap the condition -- instead of checking for OS X and assuming anything else uses the Linux behavior, check for Linux and let other platforms use the default POSIX behavior. This allows sigaltstack to be used on BSD variants.
This change has been tested (with the standard test suite) on FreeBSD 9.1 (i386, amd64) and Ubuntu 12.04.1 (i386).
Added checks for BSD-compliant protocol constants.
Fixed the checks for a couple of Linux-specific constants so they work correctly (they included the wrong header).
Added a check for the Linux-specific constant IP_PMTUDISC_DO; this'll be used with IP_MTU_DISCOVER in a future patch to make Linux sockets match BSD/OSX/Windows behavior.
Fixed the way assemblies are located when uninstalling so .exe assemblies can be uninstalled from the GAC.
Prefer __sync_bool_compare_and_swap() over PPC inline asm.

Debian's GCC 4.4 in particular does not compile the PPC assembly.
Fix PPC link error on mono/mini due to missing symbol.
Formatting changes to adhere to existing code style.
Fixed IsSwitch to check for files ending in '.exe'.
Removed checks for all-uppercase extensions in Uninstall.
Include <stdint.h> to allow cross-compilation from OS X.

Cross-compiling mono on an OS X host for a Windows target using
mingw-w64 fails because of undefined __int64 types in a couple of places.

Including <stdint.h> fixes this and allows the OS X host to cross-compile
a Windows mono.

It probably sounds like an obscure use-case, but the wine-mono
project does just this, so ability to cross-compile for Windows on OS X
is crucial to being able to build wine-mono on a Mac.
System.Web: Fixed bugs in HttpRequest.GetBufferlessInputStream()
Update after EF bump
Mobile tests update
Revert "[WebConnection] Use just one delegate to init the connection"

This reverts commit 4367f8c04a4e1507a6df965c84fb229c9ea0f666.

This is needed before I revert b190db44cbf321391ab0cf946f4501eae76f2eb3
which Gonzalo studied and determine shoudl be removed
Revert "[HttpWebRequest] Avoid using the threadpool for synchronous requests"

This reverts commit b190db44cbf321391ab0cf946f4501eae76f2eb3.

The reason is:

"The HttpWebRequests tests are not enough"

"A quick review of the code shows that the code is taking a lock, while
calling a function that retries connections (which in turn takes another
important lock --for the socket--) which might casue a stack overflow
if someone calls SetWriteStream"

"This also will make the opereation sync when calling Begin/End"

"Finally, this is a patch that improves the use of the threadpool, but
the threadpool still will end up exhausted"

Probably best to just increase the number of threads?
[ef] Fix casing for coordinatorfactory.cs.
Boehm doesn't need the pinning root for threads.

	* threads.c: Boehm doesn't need the pinning for each thread as it doesn't
	move objects and those objects are reachable through the thread hashtable.

	This fixes a crash on mobile that has a very small number of root slots.
Handle a gc moving string_dummy.
Fix casing for documentation.cs.