Unladen swallow...

Add support for DefaultValue relational API

This one required a little more work than the others to allow a variety of different objects to be used. This is the last provider-specific relational API in the current batch so I can now work on removing the old code.
Added support for unique constraints.
GitHub Issue 839: Renamed UpdatedDatabase to ApplyMigrations and GenerateUpdateDatabaseSql to ScriptMigrations.
Updates to ILogger, see aspnet/Logging#3
Adds single-level Include to relational query. Many small fixes/improvements to query framework.
Standardize reflection shim method naming
De-nest relational query components
This addresses GitHub issue #824 and includes additional cleanup.
The base Migration class does not implement IMigrationMetadata anymore.
Added MigrationExtensions helper class to avoid casting everytime metadata information is needed from a migration.
Removed UpgradeOperations and DowngradeOperations properties from IMigrationMetadata.
Renamed MigrationMetadata to MigrationInfo and added constructor to create an instance from a Migration instance.
Updated MigrationAssembly to return Migration objects instead of IMigrationMetadata
Upated HistoryRepository to return HistoryRow objects instead of IMigrationMetadata.
Updated Migrator.GetDatabaseMigrations to return Migration objects.
Updated code and unit tests as necessary.
Fixed test failures.
Revert "React to UsePerRequestServices"

This reverts commit c7f229d55bde2f7d8d190fcb48eafff189a248cc.
React to options changes
Fix for Issue 845 - InMemory EnsureCreated() should return true for the
first call to create a database and false thereafter.
Error with the Error Page, "How Meta" - Enable error page for non-collection queries
Exceptions from queries that return a single entity or a scalar value were not triggering the error page as they do not go through MoveNext in our wrapping Enumerable. Adding logging to handle these cases (and applicable unit tests).
Adding information to the model about whether the bool metadata properties have been set to default values explicitly.
Use me! Use me!

Update stack to use new provider-specific APIs

And remove older APIs. This updates query, Migrations, and update pipeline to use the new annotations through the new APIs and to use provider-specific annotations, rather than just relational annotations. File issues for:
* SQLite provider-specific APIs and their use
* Clustered is SQL Server specific except in Migrations
* Use of SQL Server specific values for column names in query
* Cascade deletes are not supported in the stack
Query: Relational: Enabled Include for async queries.

- Added async include tests to SQLServer, SQLite
- Fixed some async call sites that were not flowing a cancellation token.
- Some further de-nesting of query component classes.
Query: Relational: Async: Make All/Any/Count non-blocking.
Autumn Cleaning - Cleanup in Database Error Page

Removing isDevMode since this concept is handled in Startup.cs.
Keeping UseDatabaseErrorPage behavior consistent with general ASP.NET UseErrorPage:
* Parameterless overload results in everything being shown.
* Adding DatabaseErrorPageOptions.ShowAll pattern to allow UseDatabaseErrorPage(DatabaseErrorPageOptions.ShowAll)

Updating UseDatabaseErrorPage to also register the Migrations Endpoint when it's going to be needed
Code to read DbContextOptions from configuration and to handle DbContext constructors with DbContextOptions arguments.
Added IConfiguration parameter to AddEntityFramework
Added UseSqlServer overload with no parameters.
Moved Property query extension to Query namespace. Fixes #783