Migration Fixes - Getting a ModelDiffer and usings in generated code
Tooling was using GetService<ModelDiffer> but that was broken now we have specialized ModelDiffers. We were also registering specialized Migrators but they were registered as Migrator in DI so you would get multiples if you registered two providers (and random behavior ensued). Swapping to have Migrator resolved thru DataStoreServices.

Also adding a missing using from generated model code.

Tested with automated tests and manually testing k ef migration commands
Updated ModelDiffer to handle implicit column type changes when columns are added/removed from keys.
If a column type is not explicitly specified, the SqlServerTypeMapper maps string to varchar(128) or varchar(max) depending on whether the column is used in a key (primary key, unique constraint, foreign key). Adding/removing a property to/from a key caused an implicit column type change that was not detected by the differ.
The fix makes DatabaseBuilder dependent to RelationalTypeMapper, which is used in ModelDiffer to detect potential implicit column type changes in order to generate alter column operations.
Updated DbContext constructors to be consistent on how they handle the serviceProvider and options parameters.
Fixing build breaks
Adding ConfigurationSource parameters for InternalPropertyBuilder
Remove NullLoggerFactory
Commands: Log