A sparrow's nightmare: nest foreclosure... (Replace Properties nested closure with Entity nested closure)

As per design meeting notes (https://github.com/aspnet/EntityFramework/wiki/Entity-Framework-Design-Meeting-Notes-June-5,-2014#fluent-api) this change removes the ModelBuilder.Properties methods and replaces them with more general-purpose overloads of the Entity methods. This allows all the configuration for a given entity type to be placed in a nested closure.
Time for another injection... (Refactoring of DataStoreSource)

This change splits and modifies DataStoreSource so that:
- Constructor injection is used in some places we were using the service provider directly
- The provider services (that need to be accessed abstracting based on the configuration of the current context instance) are separated from the mechanism of selection
- Allows common types to be used while still allowing extension with a specific type. For example, only the ATS provider currently has custome conventions. This means all other providers can use a common ModelBuilder/conventions. But if I want to extend EF to add a custom convention just for SQL Server I can now do that by creating a dervived SqlServerDataStoreServices class and using my new ModelBuilder/conventions in the constructor. All other providers will continue to use the same conventions. This means that for cases like that we don't need to create a derived class simply to allow external extension.
Updated tests to use transactions and to start the Redis server automatically
Fix for async query composition issue. Some other minor improvements to query framework
Turning off the functional tests to unblock CI machine
Merge branch 'dev' of https://github.com/aspnet/EntityFramework into dev
Updating tests so that will use the KRE_PACKAGES environment variable if USERPROFILE directory does not contain packages (in particulr the Redis-64 package). Also updated the tests to use LazyRef's to avoid a circular dependency when using the configuration to get the Database.

Also updated to start Redis server with no window in the users temp dir
Denesting... (Remove some nesting in ModelBuilder classes)

No real code change here, just un-nesting some classes to make the code easier to work with.
Reverting
Fixing tests - start server from temp dir so doesn't interfere with git clean. Also add retry functionality to ensure connection is available.
Updating to use TMP environment var instead of GetTempPath()
Enables Any result op translation in relational.
Enables All result op translation in relational.
Removed reference to PropertyInfo from Column class.
Added SqlOperation to migrations model.
Part1