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.