Removing CodeAnalysis suppressions from TaskExtensions
add gears of war model to tests
Allow data store selection to happen in OnConfiguring (Issue #932)

Or: Attack of the Semi-Deep-Memberwise-Copies

Previously the common scenario for DbContextOptions was that a new object would be created for each context instance. This allowed it to be mutated in OnConfiguring such that, for example, a different data store could be selected each time. There was also the case where DbContextOptions was put into DI or passed to the constructor, in which case OnConfiguring would be called once and the options would be locked.

The recent changes to options means that the common case is now for DbContextOptions to be in DI. This means that this single object is shared by all context instance created by the app. This results in two problems:
* The locking now happens almost always, effectively making it impossible to dynamically select options in OnConfiguring
* The dynamic selection is not thread safe, but it can be executed by multuple threads all sharing the single object.

The solution is to clone DbContextOptions before passing it to OnConfiguring. This means that all context instance can share common options and also can dynamically change those options in OnConfiguring without impacting other instances. This restores the previous functionality, removes the thread safety issue in the normal path, and also means that locking is no longer required.
Remove original connection string resolver

Or: Is that a name in your pocket, or are you just happy to be a connection string?

Removing the original connection resolution code which relied on IConfiguration being in the DI container.
Various changes around nullable properties

Or: Not WDD, but hoping for BDD later...

Specifically:
- Disallow marking as nullable properties of non-nullable types (Issue #723)
- Make shadow-state FK properties nullable by default
- Allow value generation to work for nullable properties
Change implementation of TryGetService based on DI behavior ChangeDetector

Or: Karl says, "You don't have to do it straight away, but just do it before it gets really bad."

Issue #900. Note that due to Dependency Injection Issue #127 the methods are still present in addition to new required service methods such that TargetInvocationException is unwrapped thereby removing this implementation detail from the call stack. This then simplifies the fix in #937.
Refactoring Northwind and OptimisticConcurrency functional tests
Split Northwind model into separate files and added a context class
Avoiding sharing any state between the contexts that mutate the model or the data
Renamed provider-specific test classes to include the provider name
Cleaning leftover databases