Tidy up a few things related to *Request

- OAuth2Request is now immutable from the point of view of clients
(it still has setters but they are protected)
- OAuth2RequestFactory has overloaded methods (instead of method names
that refect the parameters)
- OAuth2RequestFactory.createTokenRequest for the implicit grant
explicitly requires the grant type to be provided
- Cleaned up some copyright notices
- Removed or fixed some TODO/FIXME comments
Add ClientDetails to some method signatures where it is clearly always available