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"
This looks like it is running all the tests in the same process, is there a reason for that? Also we should really consider isolated all the test output directories so we don't end up with conflicts. Please file an issue for that.