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.
Currently we create an AlterColumn in that case since sourceColumn.DataType != targetColumn.DataType, though it may be a no op if the implicit DataType is the same. I can either try to improve that for beta or add a TODO/Issue because it doesn't seem as important.