Implemented HttpRequestHandler abstraction

* Pulled onRequest, routeRequest, filter etc methods out of GlobalSettings, and put them into a HttpRequestHandler abstraction.
* Introduced HttpConfiguration abstraction to abstract out http configuration
* Rewrote Scala documentation on intercepting requests
* Didn't rewrite Java documentation on intercepting requests - felt a bit like yak shaving
There's callback called `Global.onRequestCompletion`.  This was an undocumented (not even scaladoc), untested, no equivalent in the Java API feature that seemed to be hacked onto Play without really thinking about it.  The implementation was sucky (it attached a callback to the handler), racey (could be invoked twice), and the same thing could be achieved with a filter.  So I deleted the feature and deprecated the method saying it will never be invoked.