Added Type ContextType { get; } property to IMigrationMetadata and used ...

...throughout the code.
Removed the piece that adds .Shadow(false) to properties when generating the snapshot model code.
Added some missing Check.Null calls.