Removed the idempotent SQL generation.
Moved SQL Server specific SQL generation out of the base MigrationOperationSqlGenerator
Renamed ModelDiffer DiffSource and DiffTarget to CreateSchema and DropSchema
Added code to handle transitive renames in ModelDiffer
Updated and added tests.
Performed some cleanup (simplified expressions, , removed unnecessary NotNull annotations - as suggested by Resharper)
Pickled onion munchies... (Additional functional test coverage for fixup)

This change expands the Monster Model so that it:
- Is defined in terms of interfaces with concrete implementations for:
  - Full notification entities (PropertyChanging and PropertyChanged implemented)
  - Entities that only notify for PropertyChanged
  - Normal entities that don't do notifications
- Has additional tests for fixup when FKs change

I did some work to enable the tests for SQLite, but this is currently disabled since Database.EnsureCreated is not working yet.
All your principal belong to me... (Additional fixup testing and support for reference stealing)

Additional unit tests for fixup code that runs when FKs are changed. Also added support for nulling the old dependent FKs and navigation from the old dependent to the principal for one to one relationships when the FK of another entity is set to point to the principal.