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.
What about the case where DataType is null on one property but not the other? Is the correct column type used for the one that is null?