Check for null item in BindingList<T>.InsertItem

Prevents `NullReferenceException` when inserting `null` object into `BindingList<T>` where `T` implements `INotifyPropertyChanged`
Test for bug 16902

Check insert of null item, in a BindingList<T> where T implements INotifyPropertyChanged does not cause NullReferenceException.
update copyright
Add new --client/--server[=server[:port] support for the shell
[csharp] Make the stream reader iterate until all data has been read
[csharp] do not try to read 0 characters for a string
mono-api-info: avoid NumberOverflow

GetFlaggedEnumValue converts values to Int64 which
can cause a NumberOverflow exception when the value
is too large to fit (e.g. a large UInt64). Special
case UInt64 values for now (duplicates the logic,
which sucks).
Don't raise an exception if we can't find the src assembly.

These changes are released under the MIT license.
[system] Add IsIPv6Teredo to System.Net.IpAddress

Adds support for checking for an IPv6 Teredo address, introduced in
.NET Framework 4.
Merge pull request #869 from alistair/copyfile

Don't raise an exception if we can't find the src assembly on a shadow copy appdomain
[xbuild] Tests need older MSBuild targets
[xbuild] Properly disable tests on 4.0 framework profile
Merge pull request #870 from wayoutmind/master

[system] Add IsIPv6Teredo to System.Net.IpAddress
Clean up the setup of thread->synch_cs. Initialize it when the MonoInternalThread object is created, and delete it in the finalizer.
Add LOCK_THREAD/UNLOCK_THREAD macros, get rid of ensure_synch_cs_set ().
Quickfix for transactions timing out and not committing when PreparingEnlistment.Done is called instead of PreparingEnlistment.Prepared
Clean up the thread startup code by moving common code into a new create_thread () function.
Move the mono_thread_create () function into utils/mono-threads.h/c, change/simplify its signature a bit.
[io-layer] Properly check write permission of a file. Fixes #3501.

The existing check only verified if owner had write privileges.
Which returns the wrong value when the file is not owned by the user.

And doesn't work when the file is globally writeable or the user
belongs to the user of the file.

We check flags for when euid/egid matches file's. Otherwise we fallback
to access(2), which sucks, but it's the only thing close to working
that exists on unix and has a reasonably portable behavior.
Merge pull request #871 from tumtumtum/master

Fix for transactions hanging and timing out if PreparingEnlistment.Done() is called