[System.Data.SqlClient] Support for "Connection Lifetime" parameter

Adding support for "Connection Lifetime" parameter in connection strings.
This is especially fundamental in this scenario:
- Pooling is ON because the app is in constant reception of requests.
- Loadbalancer is switched to point to a new database.
- Mono needs to discard the connections that are too old (marked by lifetime)
in order to create new ones, that will connect to the new DB.

It includes a unit test in Mono.Data.Tds testing assembly.

Patch contributed under the terms by the X11/MIT license, by:
 James Lewis <james.lewis@7digital.com>
 Andres G. Aragoneses <andres@7digital.com>
[System.Data.SqlClient] Use DEFAULT_CONNECTIONLIFETIME const in the code

We had created the constant for the pull request but we were not actually
using it, oops!
[Mono.Data.Tds] Add Obsolete constructors to unbreak the API

As Miguel points out, this assembly could be used by other people outside
Mono, so let's not break the API and make these constructors pass a 0
default connection lifetime (in this case the connection lives forever as
it used to happen before bringing connection lifetime support).
Merge pull request #1 from knocte/master

Unbreak API and other nitpicks
[System.Configuration]: Fix IsModified() logic for complex elements.
[sgen] Don't just allow concurrent collections on nursery collections.

Some workloads allocate mainly large objects, so if we just trigger
major collections on nursery collections we never actually collect.
Avoid an assert which is hit when a 3.0 runtime loads a 2.10 corlib. Fixes #9137.
[Microsoft.Build.Tasks] Delete files before copying the new one over

Handle the case where a process has mmap'ed one of the binaries which
we are trying to copy over. In this scenario we must delete the file
first otherwise we will 'corrupt' the data in memory.

Fixes bug https://bugzilla.xamarin.com/show_bug.cgi?id=9146
Add argument name to ArgumentOutOfRangeException
Add missing ConfigureAwait
Update compiler tests
[sgen] Pass value of reference to major mark function, too.

The major mark function assumes that the reference to process
 is not NULL.  Its caller checks that it isn't, but the mark function loads
the reference again.  In the concurrent case this is a bug, because
the mutator might have changed the reference between the loads.
Metadata's Makefile.am.in can now be patched by the extension module as well.
Fix support for AOT modules with more than 240 assembly dependencies. Fixes #9118.
Avoid creating unbox wrappers in mono_delegate_ctor_with_method (), it is done later by the JIT in mono_delegate_trampoline ().
[sgen] Give a warning when precise stack mark is requested but not supported.
[sgen] More dtrace probes.
[boehm] DTrace probes for Boehm.
[sgen] Don't force synchronous collection unless requested by the user.
Fix build.

Hopefully.