Implementing new ILoggerFactory.AddProvider method
DatabaseBuilder orders the table columns: primary key columns first, in the order they appear in the key, followed by other columns ordered by name using InvariantCulture, case sensitive, followed by foreign key columns in the order they appear in the foreign keys, excluding duplicates (fk1.C1, fk1.C2, fk2.C3, ...).
Using MigrationId.cs and MigrationId.Designer.cs as migration file names.
Move parts of EF.Design into new EF.VisualStudio package (Resolves #528)
Enables cancellation token support in async query.
When the model differ detects a new table it creates a CreateTableOperation, and AddForeignKeyOperations, CreateIndexOperations for its foreign keys, respectively indexes. The table passed to the constructor of CreateTableOperation is the target table. The DatabaseModelModifier incorrectly adds this table to the cloned database model. Instead it should add a clone of the target table that does not include foreign keys and indexes since these are handled separately.

Made public the Clone methods from the database model.
Migrations: Write script to .sql file (Fixes #420)
Adding simple update batching for SQL Server
Migrator creates the database if it doesn't exist.
Adding a way to specify the max batch size through Configuration
Workaround ANI issue in .csproj files

This avoids referencing the net45 version of Logging from the .csproj files. This should enable us to run unit tests in VS again while #553 is being resolved.
Reacting to System.ObjectModel package version change
Adds missing ConfigureAwaits
fixing escaping aliases in sql queries - we used to not escape aliases for queries, so if user created query like: context.Users.Where(user => user.Id >5), we would create invalid sql. Fix is to start quoting those for all cases, so that any variables can be safely used. CR: Andrew
Only different in your mind... (Make ForeignKey and Index APIs consistent with Property and Key APIs)

This change removes the ForeignKeys and Indexes methods in the same way that Properties and Key were removed. The nested closure pattern on the Entity methods is now used consistently.
A CollectionFixture seems the right way to start and stop the redis server
for the tests, but they are not working in Xunit at the moment so this is the
next best thing. Have added a RedisXunitTestExecutor which starts the
server in its constructor and stops it in the destructor (unfortunately
had to use that because Dispose() wasn't always called).

Also found that you _must_ have only one ConnectionMultiplexer per set of
config options - more causes multi-threading issues which means the tests
sometimes work but more often fail. So set up a static Dictionary of
config options to ConnectionMultiplexer in RedisDatabase and only create
the ConnectionMultiplexer as needed.

The Simple Tests are now running with server starting and stopping as
expected both under VS and for k test - so re-enabling the latter.
Fixed a couple of issues with tests when running with no existing databases:
- Temporary code in F1Context.CreateModel calls AddProperty which replaces an existing property with a new one, without updating the keys. That causes issues when we order properties in the DatabaseBuilder and rely on reference equality, resulting in duplicate columns. The fix is to move the code at the begining of the method so they don't get recreated.
- File not found exception about Northwind.sql because specified relative path goes up one directory too much.
Updated DbMigrator.UpdateDatabase to create the database if it doesn't exist.
Unwrap exceptions and use logger
Update to use new logging APIs