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.
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
Improve ABCREM on 64-bits architectures

Array indexes can be 32-bits integers even on 64-bits
architectures. This causes most loops to fail Array Bounds Checking
REMoval because the index is sign-extended before the check (see
mini_emit_ldelema_1_ins).

Sign-extending an I4 to I8 preserves its value, hence it is possible
to propagate the relation between the variables.
[corlib] Promise style tasks cannot be started manually. Fixes #16857
[mcs] Restore async modifiers context after nested enums declaration. Fixes #16997
Fix a small typo in mono-core.spec.in breaking the build

Signed-off-by: Etienne CHAMPETIER <etienne.champetier@fiducial.net>