* refactor: Refactor exchange_token method
Add missing arguments:
- subject_token_type
- subject_issuer
- requested_issuer
Remove client_id argument. The client_id should come from self.
Add None defaults
* 🔥 chore(test_keycloak_openid.py): remove unused client_id parameter
Refactored the exchange_token method test to match the new interface
BREAKING CHANGE: Changes the exchange token API
* refactor: Factor our OpenIdConnectionManager class and deprecate old methods
* refactor: Refactor keycloak uma client to use openid connection manager
* fix: Perform token renewal at 90% of lifetime
* refactor: Add optional openid connection constructor param to keycloak admin
* refactor: Remove auto_refresh_token in favour of automatic refresh on expiry
* refactor: move KeycloakOpenIDConnectionManager to a separate file
* docs: uma additions and fixes
* refactor: rename token_renewal_fraction->token_lifetime_fraction
* refactor: shorten KeycloakOpenIDConnectionManager->KeycloakOpenIDConnection
* docs: incorporate review comments
Remove the necessity for supplying client name for create a new client
request, also don't check existing clients based on client name as those
can be duplicate
BREAKING CHANGE: Renamed parameter client_name to client_id in get_client_id method
Closes#351