Updating release NuGet.config
Merge branch 'release' into dev
Updating dev NuGet.config
Learning to read... (Allow properties to be marked as read-only)

This is some more precursor work to the value generation changes. It allows properties to be marked as read-only in metadata, meaning that an exception is thrown if a change to one of these properties is detected and that marking the entity as modified does not mark these properties as modified. Key properties are forced to be read-only.
Fix for GitHub issue 632:
We now have a ModelBuilder and a BasicModelBuilder. The ModelBuilder has conventions which update the model but the model code generator uses BasicModelBuilder and does not generate anything for ValueGenerationOnSave and ValueGenerationOnAdd. When the snapshot is created these will have default values instead of the correct values. The fix generates code for the property value generation settings.
Use ContextTypeAttribute during migration discovery
Merge branch 'release' into dev
I really hope all this negativity is short lived... (Update value generators to be able to mark generated values as temporary)

This change allows value generators to mark generated values as temporary, which in turn will allow the update pipeline to make a decision as to whether a store-generated value is expected.
Removed the ContextType property from IMigrationMetadata. The association between a Migration class and a context type relies solely on the ContexTypeAttribute. Also passed the context type as parameter to methods that generate migration code and use it.
Enhanced unit tests for code generators to compile the generated code, load, instantiate, execute, and re-generate from compiled result.
Fixed a few issues discovered while running the enhanced tests.