Extracted HttpErrorHandler interface from Global

* Play will by default try and load one of these from the root package called ErrorHandler
* If none is found, it will fallback to one that delegates to Global, so that Global.onError etc methods still work for legacy apps
* Added a new mechanism to the Reflect utils to load bindings for either a Scala interface, or a Java interface with an adapter to the Scala interface
* Updated documentation, including removing documentation on old Global methods
Yes, I was thinking of doing something like this when I was writing the Akka HTTP backend. Or at least a `MaybeLoadedApplication` which wraps either a loaded application or a not-loaded application and which the Netty and Akka HTTP servers can send requests too.