[runtime] Move more thread attach code to mono-threads from io-layer.
Update Microsoft.Build.*.csproj files

* Updated source files and references in existing projects and added projects
  for xbuild_12 profile in
    - Microsoft.Build.Engine
    - Microsoft.Build.Framework
    - Microsoft.Build.Tasks
    - Microsoft.Build.Utilities
    - Microsoft.Build
    - Mono.XBuild.Tasks

* Created csproj files for all profiles in mcs/tools/xbuild
Add new assembly Mono.XBuild.Utilities

* Added new assembly Mono.XBuild.Utilities and moved classes from
  Microsoft.Build.Utilities into the new assembly and made them public to
  enable unit-testing.

* Renamed DirectoryScanner to DirectoryScannerBase and made it an abstract
  class, so the hard dependency on TaskItem can be removed, which was necessary
  to move it to the new assembly.
  An implementing class TaskItemDirectoryScanner has been created in
  Microsoft.Build.Engine and is linked in all assemblies that need the service.
  Future development may consider creating a differnt subclass in
  Microsoft.Build assembly, where DirectoryScanner works with other objects
  than TaskItem.

* UnknownToolsVersionException has been freed of its dependency to class
  Engine, so it can be moved to the new assembly.

* The classes that moved to the new assembly have been removed from the sources
  lists of several assemblies, which in turn have a reference to
  Mono.XBuild.Utilities now.
Update .csproj files for new assembly Mono.XBuild.Utilities

* Updated all references and sources to reflect changes due to new assembly
* Added csproj files for new assembly