Added a SqlServerMigrationOperationPreProcessor class that is used to pre-process the migration operations (alter column and drop column) before generating SQL. A drop column is pre-processed into a DropDefaultConstraintOperation if a default exists followed by the DropColumnOperation. Alter columns are preceded/succeeded by corresponding Drop/Add default constraint, primary key, foreign key, index. The preceding/succeeding operations are inserted before/after groups of alter column operations. Alter timestamp column is pre-processed into drop/add column.

Changed IMigrationOperationVisitor from interface to abstract class to be able to provide a default implementation.
Blue Screen of Curable Illness

Initial cut of middleware to provide a custom error page when a database exception occurs in an ASP.NET vNext. The error page is displayed when there is some action that can be taken with migrations that may fix the error (applying migrations, scaffolding a new migration, etc.). If the action is just applying the existing migrations then we also include the ability to apply them from the page. This makes use of another piece of middleware that can apply migrations.

This functionality will only ever be enabled in local dev mode by default (same as other diagnostics pages for ASP.NET vNext).

This is just an initial cut, things that still need to happen are:
 - Better error handling/validation in middleware
 - Tests
 - Handling context not being registered in DI
 - Styling for error page (currently it just has very simple styling largely copied from the existing ASP.NET vNext error page)