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.
[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(,,)
Remove obsolete pc infos from pc cache on Update()

The pc info file cache (~/.config/xbuild/pkgconfig-cache-2.xml) stored data
for files which don't exist anymore on the system which causes
https://bugzilla.xamarin.com/show_bug.cgi?id=11133.

This patch removes obsolete entries from the cache when
PcFileCache.Update() is called.
Implementation of System.Reflection.ParameterInfo.HasDefaultValue
Merge pull request #838 from desdesdes/master

Implementation of System.Reflection.ParameterInfo.HasDefaultValue
Merge pull request #849 from antoniusriha/pcCacheBug

Fix for PkgConfig cache orphaned entries bug (xam bug #11133)
Merge pull request #822 from carlosmn/asp-pc

Use full path for aspnetwebstack pkg-config file
[aot] Sanitize utf8 characters in symbol names. Fixes #16851.