Exception to the Exception - Update Migrator to expect DataStoreException

Migrator was still expecting a DbException when history table doesn't exist. But this is now a DataStoreException.

Also updating the relevant unit test. Note the unit test didn't catch this change. Catching this change would require adding functional tests that hit the actual data store exception when the table doesn't exist. There aren't any functional tests for migrations as yet.
new[] { 1, 2, 1 } (Implementation of OneToOne for 1:1 relationships in Code First)

This is mostly refactoring and tweaking of the existing OneToMany code to make it also work for OneToOne. One functional difference is in the convention for finding an FK where for 1:1 relationships the PK is used if no other property matches the FK convention.
Monster cleaning service... (A bit of cleanup in MonsterContext`.cs)

Combines the two sections of fluent API calls into one.
Refactoring ModificationCommandBatch to improve extensibility
Remove exception wrapping from query compilation
Adding unit tests for Redis Query classes
Updated the migration tool to work with K10, including core CLR:

1. ifdef-ed code from EntityFramework.Design assembly that don't compile with core CLR.
2. Replace Assembly.LoadFile with Assembly.Load and removed the References option.
3. Replace all variable names like assemblyFile with assemblyRef.
4. Using PathResolver to resolve relative paths instead of GetCurrentDirectory.
5. Updated code DbContextConfigurationExtensions.GetMigrationNamespace to cover the case of empty context namespace.
6. Updated tests.
Added a SqlServerMigrationOperationPreProcessor class that is used to pre-process the migration operations (alter column and drop column) before generating SQL. A drop column is pre-processed into a DropDefaultConstraintOperation if a default exists followed by the DropColumnOperation. Alter columns are preceded/succeeded by corresponding Drop/Add default constraint, primary key, foreign key, index. The preceding/succeeding operations are inserted before/after groups of alter column operations. Alter timestamp column is pre-processed into drop/add column.

Changed IMigrationOperationVisitor from interface to abstract class to be able to provide a default implementation.