The `AuthorizationCodeState` object of an `@AuthorizationCode` ConnectionProvider is not updated under the certain circumstances:
- If the auth dance is performed for a second time on a CachedConnectionProvider or a PoolingConnectionProvider
- If a refreshToken operation is executed over a PoolingConnectionProvider, only the instance that triggered the refresh will be updated. All the other instances in the pool will remain untouched.
The root cause of the problem is that the `AuthorizationCodeState` implementation is immutable. We should instead change to an approach in which our implementation of AuthorizationCodeState is actually a facade to the underlying `ResourceOwnerOAuthContext`. This would also eliminate the need to invoke `org.mule.runtime.module.extension.internal.runtime.connectivity.oauth.OAuthConnectionProviderWrapper#updateAuthState` in `org.mule.runtime.module.extension.internal.runtime.connectivity.oauth.DefaultExtensionsOAuthManager#refreshToken`.
The key here is to determine if we can implement some kind of callback mechanism so that the facade can cache the state and only refresh it when a refreshToken or new authorization happens.