Use full path for aspnetwebstack pkg-config file

Referencing the assemblies by DLL name isn't enough for MonoDevelop to
pick them up for listing. Use the full path so they show up the
references list.
Merge pull request #841 from knocte/master

[System] Change S.N.S.NetworkStream's param name on ctor
Replace custom Load with File.ReadAllBytes
Switch to File.ReadAllBytes since we do not have to support pre-2.0 code
Do not assume the first certificate of a PKCS12 file is the one matching the key (even if it's the most common way). ref: desk #54722
Handle 12.00 in XBuild's SolutionParser.

This doesn't fix support for VS 2013 projects, but it's a start...
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.
Don't call CFNetworkCopyProxiesForAutoConfigurationScript from more than one thread. Fixes #7923, comment 21.
String.Join() calls List(IEnum) instead of looping

String.Join() instead of looping over IEnumerable<T> calls the constructor of List<T> accepting IEnumerable<T>.
According to https://github.com/mono/mono/blob/master/mcs/class/corlib/System.Collections.Generic/List.cs#L67 it should be more efficient.

Because JoinUnchecked() accepts string[] the option #2 is to call ToArray() extension method instead.
https://github.com/mono/mono/blob/master/mcs/class/System.Core/System.Linq/Enumerable.cs#L2886
Merge pull request #846 from abatishchev/patch-1

String.Join() calls List(IEnum) instead of looping
Fix Tuples.cs code generator

The code generator in Tuple.cs did not build because of missing
escaping of a string.
Make tuple hash function consistent with the F# implementation

The F# compiler optimizes the hashing of tuples when it can inline
it. This is consistent with the hashing algorithm used in .NET, but it
is not with the one used in Mono, as pointed out in
https://github.com/fsharp/fsharp/issues/188

This patch modifies Tuples.cs so that the hashing algorithm is the
same as that used in F#, i.e. the XOR variant of DJB2, using a
balanced tree parenthesization.
Merge pull request #847 from ranma42/fsharp-tuple-hashing

F#-compatible tuple hashing
Fix CancellationTokenSourceTest.ReEntrantRegistrationTest

This test run on .NET would result in both "unregister" and "register"
set to a "true" value. In order to ensure that the "unregister = true"
fragment is not executed, its disposal needs to be registered after,
because on .NET the CancellationTokenSource has a LIFO behavior.

This change simplifies the code and makes the expected behavior
consistent with that of .NET.
Add testcases for callback and exception ordering

Translated from the F# testcases available here
https://github.com/fsharp/fsharp/blob/19507b98bc6a7995e9c19c40f044fdfeb578ef77/src/fsharp/FSharp.Core.Unittests/FSharp.Core/Microsoft.FSharp.Control/Cancellation.fs#L100
Use LIFO policy for CancellationTokenSource

The .NET implementation of CancellationTokenSource invokes the
callbacks in the opposite order from that of the registration.
In order to mixamize compatibility, use the same order.

Fixes ReEntrantRegistrationTest, Cancel_Order, Cancel_ExceptionOrder
(in CancellationTokenSourceTest) and
https://bugzilla.xamarin.com/show_bug.cgi?id=16992
Merge pull request #851 from ranma42/fix_16992v2

Fix bug #16992
[corlib] Thread.GetNamedDataSlot allocates slot on failure. Fixes #16788
[system] Make ICommand 4.5 profile only