feature(oidc) Add auth code flow to OIDC extension

* Modified OAuth2Provider to have modular TokenEndpoint for OIDC Extension
* Modified OIDCProvider to include auth code generation and token access
* Updated datahandler to include helpers for auth code storage
* Modifed OAuth2 Grant Handler to have abstract result so we can use it
  with OIDC Extension
feature(oidc) Make handlers a def so we can override

* OIDCTokenEndpoint will return modified map of handlers
* OIDCGrantHandlerResult requires scope and idToken in JSON response
feature(oidc) More scope validation
feature(oidc) Store id token with OIDC auth code
feature(oidc) Scope is not required in this context flow
feature(oidc) Separate id token generation

* Moved id token generation into accessible object
* Decouple id_token from auth code, we should generate id_token with
  corresponding access token if available.