Rework of performance microbenchmark tests to run directly through xunit including disabling perf tests by
env variable or config file. Also adds the ability to specify the destination of the perf result files thorugh
PERFRUN_ResultsDirectory environmental variable
Fixing references in project.json, cleaning up namespaces,
and fixing coreclr issue with runtimeFlavor variable
CR feedback fixing more references and removing bad using statmenet
Fix #1036 - Uniquify table aliases when building Include queries
React to fallback changes
Stop using DbContextConfiguration directly in most tests and remove from Context

This is part of Issue #641 which is about cleaning up the use of DbContextConfiguration. DbContextConfiguration is intended to help resolve dynamic services--that is, services for which the actual type/instance of service to use depends on the current context configuration. However, it has gradually spread throughout the code as a general purpose service locator. This causes dependencies to be hidden and creates a lot of coupling to DbContextConfiguration throughout the code, so I am making a set of changes to help fix this.

The previous changes removed most dependencies in the code on DbContextConfiguration. This meant that the tests were now using it only as an easy way to get a service provider setup with everything needed for an in-scope configured context instance. This change makes this more explicit both in the product code and in the tests that use it by removing the Configuration property from the context and replacing it instead with a hidden property for the scoped service provider. This explicitly exposes the fully setup scoped service locator which is very useful for testing and for writing extensions to the context that may require arbitrary services.

Also cleaned up a few remaining places where DbContextConfiguration was being used directly as a service locator--notably for the MigrationScaffolder and MigrationAssembly.