[HttpWebRequest] Add timeout tests that cover BNC#317553 (ximian #74177)

The pull-request that was merged [1] intending to fix BXC#1183 [2] was
later reverted [3] because it broke a scenario that wasn't covered by tests.

This commits creates a couple of tests that cover this scenario (which was
implemented back in 2005 [4]) so that we are sure that any further proposed
fixes for bug 1183 [2] don't cause any regression in this area.

[1] https://github.com/mono/mono/commit/8c2167d52cb9acf9582647ebb5f99c92d9127fbd
[2] https://bugzilla.xamarin.com/show_bug.cgi?id=11833
[3] https://github.com/mono/mono/commit/14f0405443693ec2586e73e4b3746134046210d5
[4] https://bugzilla.novell.com/show_bug.cgi?id=317553
Merge pull request #617 from knocte/httpwebrequest_playground

[HttpWebRequest] Add timeout tests that cover BNC#317553 (ximian#74177)
[configure] Use the preprocessor to determine the target FPU on ARM.

This is needed for a number of reasons:

1. Runtime detection of the target FPU is very hostile towards
   cross-compiling. We'd previously only pick up an FPU if we're
   compiling directly on the target device.
2. The runtime detection logic would attempt to use FP instructions
   regardless of whether the toolchain is actually configured for
   it. That means we could end up detecting an and using an FPU
   when the entire system is actually soft float, i.e. P/Invoke
   blows up.
3. The previous detection logic is never what distro packagers
   want because one build server could just happen to have an FPU
   even though the package is being built for soft float (armel).
4. We previously invoked 'gcc' explicitly, which is of course wrong
   when a non-GCC compiler is being used, or the compiler has a
   completely different executable name.

We now check preprocessor definitions to detect the FPU in use. This
works with cross-compilation, respects the toolchain's configuration,
and works when non-GCC compilers are being used. It also means distro
packagers can eliminate some downstream patches they previously used
to sanitize the FPU detection logic.
Always restore extension methods candidates after each run
now we (can) build Rx assemblies for mobile by *.sln in our mono/rx.git, so remove them from Makefile.
Remove obsolete 32 bit s390 backend.
Support a MONO_ARCH_HAVE_TLS_INIT variable.

Setting this on an architecture makes Mini call
mono_arch_tls_init () on thread attach.

This is primarily useful for architectures that have not
had their LMF code ported to the new infrastructure due to
a general lack of maintenance or hardware to do it on.
Remove 32-bit s390 support from configure.in as well.
Allocate the _WapiHandle_thread structures on the heap instead of embedding them in _WapiHandleUnshared.
Get rid of the pthread_cleanup_push/pop () calls.
Allocate all handle specific data on the heap instead of embedding it into _WapiHandleUnshared.
Remove the unused union from _WapiHandleUnshared.