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
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.
Changing ConfigureAwait(false) to WithCurrentCulture()

Part of #374
Identity theft made simple...

Add fluent API to set high-level value generation strategy.

Provider-specific API for changing the strategy for a given property still to come. I implemented two methods; open to discussion on combining them and/or different naming idea.
Avoiding blocking on async operations by providing sync counterparts.

Fixes #374
Identity theft for dummies...

Allow SQL Server-specific value generation strategies to be used.

This change adds fluent API for setting Identity or Sequence value generation for integer properties when using SQL Server. Note that Migrations support is still missing--this change only includes a hack to stop Identity columns being generated when sequences are being used.

Currently the default is still Identity. It will be switched to Sequence once Migrations support is added.
fix to issue 691 - we were incorrectly constructing foreign keys by convention in case of composite keys. CR: Arthur
Enabling Built-In Data Types tests for Azure Table Storage. Added a
non-null property to all Built-In data types classes to support having a
PartitionKey and RowId for Azure Table Storage.
Updating branch due to rebase