Run tests on .NET Core runtime and framework

This change uses the Microsoft.DotNet.TestHost package to run test
assemblies against a test version of .NET Core, rather than against
the locally installed version of the .NET Framework.  It also adds
the build property "SkipTestAssemblies".  SkipTestAssemblies can be
set to a semicolon delimited list of test assemblies to suppress.
For example:
build.cmd /p:SkipTestAssemblies="System.Linq.Parallel.Tests;System.Col
lections.Immutable.Tests"
We should gather the list of test assemblies from the test projects below when you call GetTargetPath. That will be more reliable and prevent false positives with other assemblies that have test in their name.