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.