Adding API for ignoring a property
Decouple value generation from DbContextConfiguration and state entries

This is part of Issue #641 which is about cleaning up the use of DbContextConfiguration. DbContextConfiguration is intended to help resolve dynamic services--that is, services for which the actual type/instance of service to use depends on the current context configuration. However, it has gradually spread throughout the code as a general purpose service locator. This causes dependencies to be hidden and creates a lot of coupling to DbContextConfiguration throughout the code, so I am making a set of changes to help fix this.

Value generation is special in that it needs to be a singleton service such that values span context scopes for things like the in-memory provider and for management of sequence blocks. However, the generation process may sometimes need to make use of the current data store, and hence the current context scope. This means that a value generator cannot just depend on any scoped data service that it needs because it is itself a singleton. Therefore, the generation methods are passed the current data store services such that they can be used if necessary.

In addition, since the state entry was no longer being used to get access to the current scope it meant that decoupling from the state entry was possible. This decoupling in general made the code simpler and made more apparent the fact that the ForeignKeyValueGenerator wasn't really a value generator and hence no longer tries to be one and is handled separately. This is cleaner especially since it was being partially handled separately anyway.
Changing the uses of BasicModelBuilder to ModelBuilder in FTs
Remove DbContextConfiguration dependency from StateEntry and related classes

This is part of Issue #641 which is about cleaning up the use of DbContextConfiguration. DbContextConfiguration is intended to help resolve dynamic services--that is, services for which the actual type/instance of service to use depends on the current context configuration. However, it has gradually spread throughout the code as a general purpose service locator. This causes dependencies to be hidden and creates a lot of coupling to DbContextConfiguration throughout the code, so I am making a set of changes to help fix this.

StateEntry now depends on the state manager and its metadata services. StateManager uses data store services through the mechanism introduced in previous commits. The ChangeDetection reactions to property changes through notifications removing a coupling and a potential circular dependency.
Make generated resource helpers public
...and remove reflection-based access to them.
Update default max length values

Resolves #768
Commands: Only use ambient context on same project
String resource tidy up
* Add info about installing KVM to use migrations commands to Database Error Page
* Removing 'refresh the page' <a> which was broken
* Fixing typos (all string run thru spell check - thought I had done this but evidently not)
* Fixing package description for SQL Server package
Cleanup interaction of DbSet and DbContextConfiguration

This is part of Issue #641 which is about cleaning up the use of DbContextConfiguration. DbContextConfiguration is intended to help resolve dynamic services--that is, services for which the actual type/instance of service to use depends on the current context configuration. However, it has gradually spread throughout the code as a general purpose service locator. This causes dependencies to be hidden and creates a lot of coupling to DbContextConfiguration throughout the code, so I am making a set of changes to help fix this.

In this case the DbSet needs to have access to DbContextConfiguration, through the context, because sets are created eagerly before the scoped service provider is created, but are then initialized lazily in the scope the first time they are used.
Making Ignore behave the same independently of the order relative to other configuration.

If a property or entity was added and ignored explicitly an exception will be thrown.
If a property or entity was added and ignored through conventions or data annotations the property will be present on the entity.
If a property is ignored and removed after conventions or data annotations added keys, foreign keys or indexes referencing it they will be removed as well.
The same applies to entity types and foreign keys referencing them.
Commands: Block Apply-Migration on Store Apps
Removing Microsoft.AspNet.Diagnostics.Entity from this repo
There is a corresponding pull request to add it to the Diagnostics repo
Fix #940 - Corrected handling of nullable/non-nullable mixed type join equality expressions
Adding the missing RunIfConfigured attribute to some of the ATS functional test classes
Renormalize files
Allowing to reference a property by name when configuring a key, foreign key or index if it exists on the CLR type even if it hasn't been added to the entity type.
Change Contract.Assert to Debug.Assert
Rework of performance microbenchmark tests to run directly through xunit including disabling perf tests by
env variable or config file. Also adds the ability to specify the destination of the perf result files thorugh
PERFRUN_ResultsDirectory environmental variable
Fixing references in project.json, cleaning up namespaces,
and fixing coreclr issue with runtimeFlavor variable
CR feedback fixing more references and removing bad using statmenet