A few TODOs  resolved and some cleanup.

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)
Is there an object for the primary key definition? If not, it may be more useful to pass through all the parameters that were in `GeneratePrimaryKey`.