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
It may have failed to compile or load (in dev mode).  At some point I'd like to change things so that if it does fail to compile or load, an error application is returned that just responds to every request by rendering the error, that will make so much of the logic here so much simpler.  But I think that's a separate change.