[system.data] BUGFIX: fixes issue with expression columns and IsNull:
 - bugzilla.xamarin.com issue 20925
 - if an expression column was added ayer there were rows, and then IsNull is called, the result is incorrect (it will always be true)
[system.data] Appended the fix to correct the whitespace Expression and argument checking
 - Whitespace Espressions:
 -- if a column expression is a pure whitespace, use an empty string instead
 -- if a column expression is surrounded by whitespace, preserve whitespace
 -- if a column expression is null/empty, use an empty string
 - Get a row's column value:
 -- make sure we throw exceptions if the column we are looking at is null
 -- make sure we throw exceptions if we can't find the column with the provided name
Use Mono prefix for libMonoPosixHelper

The libMonoPosixHelper is installed together with Mono, hence its path
in the configuration should be relative to the Mono prefix.

It was previously assumed to reside in a system path, so the the
dynamic linker would find it anyway.

This patch is based on the one included in bug #18555 (by Gaëtan
Lehmann <gaetan.lehmann@gmail.com>), but it also updates
runtime/Makefile.am to keep runtime/etc/mono/config consistent.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=18555
Improve libgdiplus path handling

Since libgdiplus is not installed together with Mono, it should not be
assumed to be in the same prefix.

The new policy for the --with-libgdiplus configure option is the
following:

 - --with-libgdiplus=/absolute/path/to/libgdiplus.{so,dylib}

   both during build/check and after installation Mono will try to use
   the specified libgdiplus library; the rationale is that when an
   absolute path is given, it can be assumed to be the full path to
   the library that is already installed (possibly in a non-default
   path).

 - default, --with-libgdiplus=no, --with-libgdiplus=installed

   both during build/check and after installation Mono will try to use
   a system-wide libgdiplus library, that is assumed to reside in the
   paths that are automatically searched by the dynamic linker; the
   library is supposed to be already installed in the default path and
   to be useable both during the build and afterwards.

 - --with-libgdiplus=sibling, --with-libgdiplus=yes

   during build/check Mono will try to use the libgdiplus library that
   is assumed to be in the sibling folder (../libgdiplus), but after
   the installation it will try to use a system-wide libgdiplus
   library, that should be in the paths that are automatically
   searched by the dynamic linker; the assumption is that the library
   is not yet installed, but it will go to the default prefix after
   installing it.

 - --with-libgdiplus=../some/relative/path/to/libgdiplus.{so,dylib,la}

   during build/check Mono will try to use the specified libgdiplus
   library, but after the installation it will try to use a
   system-wide libgdiplus library, that should be in the paths that
   are automatically searched by the dynamic linker; the assumption is
   that the library is not yet installed, but it will go to the
   default prefix after installing it.
Fix several issues in System.Json

- Fix detection of extra characters in JSON input
- Fix detection of invalid negative numeric literals
- Disallow leading zeros
- Use "round-trip" format for floating point numbers
- Serialize NaN and Infinity as strings
- Use NumberFormatInfo.InvariantInfo for Convert.To*()
- Use standard number parsing methods in ReadNumericLiteral()
- Add test cases
ConnectCallback needs to call EndConnect

Socket.ConnectAsync uses BeginConnect, and ends here in
ConnectCallback. It needs to call EndConnect so any error can be
propagated up.

See Xamarin bug: https://bugzilla.xamarin.com/show_bug.cgi?id=21017
[System] Fixed HttpWebRequest test that sometimes failed

The TestTimeoutPropertyWithServerThatDoesntExist test sometimes failed with a 'ConnectFailure' instead of a 'Timeout'.
As per the discussion in PR #1145, the test should actually check that a ConnectFailure is thrown before the timeout is reached.
This proved unreliable with the 10.128.200.100 IP address, as it was up to the networking stack to decide whether the endpoint can be reached,
which can take quite a long time (sometimes >100secs).

Instead, we now use the loopback address with a port where no service listens, which should be equivalent.

Additionally, the assert which checks for the correct exception switched the 'expected' and 'actual' parameter, which resulted in the wrong output, this is fixed as well.
[bcl] Increase some test timeouts to avoid failures when running with llvm.
[runtime] Explicit thread GC data around instead of relying on TLS storage. Fixes #20360.

Some systems do locking in their TLS implementation (yeah, super smart, I know).

Due to how we implement stop-the-world this can lead to deadlocks.
[runtime] Lock the root domain in mono_jit_info_add_aot_module () to simplify locking.
Merge pull request #1149 from akoeplinger/fix-httpwebreq-test

[System] Fixed HttpWebRequest test that sometimes failed
[runtime] Remove a duplicate switch case from configure.
[runtime] Remove another duplicate switch case from configure.
[mcs] C# static using
[Facades] Add more comtypes to System.Runtime.InteropServices
[sdb] Fix handling of out ref parameters.
Don't hardcode the temp dir to /tmp, use g_get_tmp_dir instead. Fixes #20894.

Hardcoding a temporary dir doesn't work on sandboxed apps.
[System.Numerics] Contract the values array when decoding an array with a negative number and a trailer that evals to zero. Fixes #20456.
Fixes https://github.com/OfficeDev/Open-XML-SDK/issues/7 by allowing both relative and absolute urls
This change in released under the MIT license.
[mcs] Use closed delegate over static generated methods from anonymous methods