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.
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
[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>
Add tests for empty, non-modifiable SortDesriptionCollection
Make empty SortDescriptionCollection read-only.

This is in accordance with the behavior of SortDescriptionCollection in .NET.
[eval] Consider base type members in tab completion
Merge pull request #854 from antoniusriha/sortDescription

Make SortDescriptionCollection returned by SortDescriptionCollection.Empty read-only
Merge pull request #855 from echampet/spec

Fix a small typo in mono-core.spec.in breaking the build
[mcs] Don't wrap reference type values in explicit nullable conversion. Fixes #16900
Move internals from Microsoft.Build.Tasks to new dll Mono.XBuild.Tasks

All internal members (such as PcFileCache) have been made public to make them unit-testable.

* mcs/class/Makefile: Add Mono.XBuild.Tasks as build target

* mcs/class/Microsoft.Build.Tasks/Makefile: Add Mono.XBuild.Tasks.dll as build
  reference of Microsoft.Build.Tasks.dll

* mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks-net_2_0.csproj:
* mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks-net_3_5.csproj:
* mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks-net_4_0.csproj:
* mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks-net_4_5.csproj: Remove
  source files, which have been moved to Mono.XBuild.Tasks.dll and add a
  project reference to Mono.XBuild.Tasks.dll

* mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks.dll.sources: Remove
  files that have been moved to Mono.XBuild.Tasks.dll from
  Microsoft.Build.Tasks.dll

* mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/PcFileCache.cs:
* mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/LibraryPcFileCache.cs:
  This file was moved to Mono.XBuild.Tasks.dll

* mcs/class/Mono.XBuild.Tasks/Assembly/AssemblyInfo.cs: Moved from
  Microsoft.Build.Tasks.dll. Signing key is mono.pub.

* mcs/class/Mono.XBuild.Tasks/Mono.XBuild.Tasks/PcFileCache.cs:
* mcs/class/Mono.XBuild.Tasks/Mono.XBuild.Tasks/LibraryPcFileCache.cs:
  Moved from Microsoft.Build.Tasks.dll. All internal members have been made
  public.

* mcs/class/Mono.XBuild.Tasks/Test/Mono.XBuild.Tasks/PcFileCacheTest.cs: Create
  test file stub.
Setup PcFileCache stubs and ctor tests
Add a test for PcFileCache.GetPackages()
Remove redundant pc info store.

* PcFileCache.filesByFolders held copies of the package infos in
  PcFileCache.infos grouped by the resp. pkg config directories the pc files
  resided in.

* Rewrite GetPackages:
    - Returns a snapshot-in-time IEnumerable<PackageInfo> ordered by pkg config
      folder.
    - Noramilzes paths of pkgConfigDirs parameter

* Remove now superfluous method PcFileCache.Add(,,)