Use ContextTypeAttribute during migration discovery

/cc @rowanmiller & @emilcicos 

I also did some manual bashing on this for additional functional verification.
Also, it would be nice to have one parameter here instead of two (contexType and model), at least for consistency with the migration code generator (see IMigrationMetadata, MigrationMetadata and the Migration). It may be desirable to associate the context type with ModelSnapshot via a property (whose getter can return attribute.ContextType), or even go further and associate it with IModel. Theoretically the context type is another piece of metadata.