Upgrade the solution to .NET 4.5.1.

See http://go.microsoft.com/fwlink/?LinkId=235367 for details of the
changes made to the web.config file.
Update psake to 4.3.1 for .NET 4.5.1 compatibility
Use .NET 4.5.1 in psake build.
Reinstall EntityFramework for .NET 4.5.1.

Some NuGet packages require reinstallation after changing the target
framework from .NET 4.0 to .NET 4.5.1. We get a free upgrade to Entity
Framework 6 as part of this process.

A few source files have had to be updated too: the `EntityState` enum
moved from `System.Data` to `System.Data.Entity` in EF6.
Reinstall Glimpse for .NET 4.5.1.

Some NuGet packages require reinstallation after changing the target
framework from .NET 4.0 to .NET 4.5.1. We get a free upgrade to Glimpse's
MVC4 support as part of this process.
Reinstall Web API for .NET 4.5.1.

Some NuGet packages require reinstallation after changing the target
framework from .NET 4.0 to .NET 4.5.1. We get a free upgrade to Web API
2.1 as part of this process. (The library that needed updating was
Microsoft.Net.Http, a dependency of WebApi.Client that caused a domino
effect whereby I had to uninstall and reinstall the entirety of the Web
API.)
Reinstall Ninject for .NET 4.5.1.

Some NuGet packages require reinstallation after changing the target
framework from .NET 4.0 to .NET 4.5.1. We get a free upgrade to Ninject
3.2 as part of this process.

This also required a small change to the NinjectWebCommon class in
App_Start to fix a namespace.
Fix Json.NET again.

Upgrade the package from 4.5.11 (which was forcibly reinstalled as part of
the Web API commit) to 6.0.1 again so that it continues to work on
@philpursglove's machine.
Fix references to CompareAttribute.

This attribute used to appear only in ASP.NET MVC, but has been added to
System.ComponentModel.DataAnnotations in .NET 4.5(.1?). The ASP.NET MVC
version remains the one you want for ASP.NET MVC projects, as it
implements an interface that System.ComponentModel.DataAnnotations'
version does not, but you now have to explicitly state that if you're
using other attributes from System.ComponentModel.DataAnnotations in the
same source file.

See [this Microsoft Connect
issue](http://connect.microsoft.com/VisualStudio/feedback/details/727650/system-web-mvc-compare-ambiguous-reference-exception).
Disable NuGet Package Restore.

Remove the NuGet client and supporting files (preserving the
solution-level packages.config and so the .nuget directory), and remove
references to NuGet from the project files.
Re-enable NuGet Package Restore.

Upgrades the NuGet client and its supporting files to v2.8, and
reconfigures the project files.
Re-add project reference to NuGet.Core.

This appears to be required by
System.Web.WebPages.Administration.PreApplicationStartCode, which is
called during the start up of an MVC application. I don't want to know why
it is that MVC apps have become dependent on NuGet in this way...
Merge pull request #219 from alastairs/net-451-upgrade

.Net 4.5.1 upgrade