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.
All I want for Christmas is an Exception (removing wrapping on DataStore exceptions)
Moving to structured logging to capture context information when an exception occurs during query/save
Also updating migration information to match current command format
Line Break == Build Break
Adjusting line break in generated code to avoid potentially offensive string fragment
Issue 653 - added support for DateTimeOffset properties in Redis.
Also added tests for all built-in data types for all providers except
Azure - which needs special treatment (PartitionKeys etc).
As noted several of the data types are not yet supported on all providers
- so these have been moved to a Supplemental set of tests which are
  implemented only on the providers that support them. As SQL Server and
  SQLite start supporting these we should move those data types into the
  BuiltInDataTypes* classes and remove them from the Supplemental
  ones.
Two into one does go... (Update value generation per design meeting decisions)

This is the main part of the work to update value generation per design meeting discussions. The two enums are replaced by one leaving it up to the provider to decide on the actual strategy to use. The update pipeline uses the temporary value flag through an abstraction in the state entry in order to determine whether or not a store value is needed.

Things still to do here:
- Allow explicit values to be set such that the value generator will not kick in at all
- Allow specification of provider-specific strategies through provider-specific APIs and annotations
- Fluent API for high-level abstractions
- Migrations updates to handle sequences, which will then allow sequences to become the default strategy for SQL Server
- Some more work to fully enable general database defaults
Enables single-level Include operator for in-memory.
Merge branch 'inc-latest' into dev
Adding WithCurrentCulture extension method

Part of #374