Implement OpenID Connect /userinfo endpoint

* Bearer token support for protecting an endpoint with a required scope.
* Custom Scotty error handler to bail out early and handle the errors
  as required by rfc6750 (Bearer token usage).
Tidying up and reducing compiler warnings
Fix use of pre-approved scope

Resulting scope should be the intersection of previously approved with
currently requested scope, not the difference between them.

This will change in future anyway with support for approving additional
scope.