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.
That pattern runs into the same issue because then you have two Migrator's registered when you have two providers.