Use explicit class for dynamically resolved context services (Issue #1079)

Instead of using LazyRef which is perhaps too general and fails to get across the semantics of what is going on.
Rename DbContextConfiguration to DbContextServices to better reflect its function and renaming ContextService to DbContextService
Refactoring MigrationSqlGenerator to allow batching of sql statements, as well as producing multiple batches per migration operation. CR: Andrew, Brice, Emil
Fix #1070
Adding Ignore to ModelBuilder
Renaming IgnoreEntity to Ignore on InternalModelBuilder
Make database creation for SQL Server more resilient to failures

Issue #985. The change here is to call the equivalent of Exists always immediately after creating the database. If this fails with one of the "transient" errors that we have encountered, then sleep for a bit and retry the exists check. Repeat until it passes or until we've waited so long we just give up.

Also made a similar change in the test code used to create databases since it doesn't use the EF mechanisms.

Currently executing a squence of Migrations operations to create a database will not use this mechanism--will file a bug on this.
Updated code to generate SQL for creating schemas.
Removed DelimitLiteral because it is equivalent to GenerateLiteral.
Moved type mapping classes from Relational.Model to Relational and removed the Relational.Model namespace.
Updated code to gnerate CSharp code for AddForeignKey that is formatted on multiple lines.