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 include:
 - 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)

The functionality is enabled by adding something like this to Startup.cs. There are overloads that allow you to customize URLs, info that is displayed, etc.
```
app.UseDatabaseErrorPage();
app.UseMigrationsEndPoint();
```

Here is a sample of the page that is displayed
![screenshot](https://cloud.githubusercontent.com/assets/4741851/3899153/10d07f3e-2277-11e4-9355-817146ecbbac.png)
Is it just a layout thing (i.e. refactor to new method) or the fact that we are running logic in the catch? 

Error handling is something I still need to work out - the main diagnostic page just bails out and lets the rest of the pipeline handle the request by rethrowing the original exception (that may well be the best thing to do). At the moment, if this code throws you get the standard error page for the exception encountered here, which does hide the original exception (but maybe we could do something with combining the two using InnerExceptions).

I'd be happy to swap to the 'rethrow original exception' approach for the moment if you think that is better?