Replace individual parameters with wildcard

It's not that we ever want to pass more than ten arguments; it's about
the fact that we'd like to be able to pass arguments like this:

    .\build.cmd /p:OutDir='D:\test\'

Using individual arguments, MSBuild is called like this:

    MSBuild.exe /p:OutDir D:\test\

That's because the equal sign is considered a separator in batch files.
Replace MSTest with xUnit
Run tests in command line build
Add xunit.runner.visualstudio
Add option to suppress running tests

When running on a build machine, such as Visual Studio Online, the outer
build process already runs the tests as a secondary step. The benefit is
that those systems typically provide additional functionality, such as
measuring code coverage and reporting on the pass rate.

Thus, it makes sense to suppress running the tests as part of the
inner build process so that tests aren't executed twice.
WIP: Add support for unused columns

Remaining work:

- We need to re-allow renaming column in CTEs -- it's broken right now
- Wildcards aren't handled correctly (those should classify as reads)
- Need to double check that using an alias or an positional reference
  in ORDER BY classifies as a read
- We should have code actions. Invoking them on any column of a query
  should remove all unused columns from that query.
- Handling UNION ALL
- In some queries changing the output columns changes semantics (UNION,
  EXCEPT, INTERSECT, DISTINCT). We should probably have a notion of
  required columns. This set should contain the root columns as well
  as any columns from queries where output are part of the semantics.
- Tests