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
Why not?  Unfortunately, we need to instantiate RequestHeaders in the tests, and there's no other way to do it.  Now that the app doesn't depend so much on global state, we can start moving tests out of the integration test project, but some things are needed to do that, such as a way to instantiate a RequestHeader.