Add client cache and automatic cache cleanup. The cache is managed by a map with OAuth access token as the keys. Upon user tool invocation, get client from existing cache or create a new one.