### Elasticsearch Version

8.x (any version where we have added support for proxies with a GCS repo)

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

N/A

### Problem Description

When configuring a GCS repository with HTTP proxy settings ([doc](https://www.elastic.co/guide/en/elasticsearch/reference/8.0/repository-gcs.html#repository-gcs-client)), we do not pass along the proxy settings to other `HttpTransportOptions` instances that we create. This can lead to timeout errors when the GCS Client tries to get a token, with the following error message:
```
Error getting access token for service account: Connect timed out, iss: ...
```

The workaround is to set the HTTP proxy settings on the JVM level rather than when defining the GCS repository, using `java.net.useSystemProxies` or `http.proxyHost`/`http.proxyPort`.

### Steps to Reproduce

[Setting up a GCS repository](https://www.elastic.co/guide/en/elasticsearch/reference/8.0/repository-gcs.html) with HTTP proxy settings (while every other non-proxied GCP call is blocked) could lead to this issue.

### Logs (if relevant)

_No response_
modules/repository-gcs/src/main/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageClientSettings.java
clients.put("default", getClientSettings(settings, "default"));
        }
        return Collections.unmodifiableMap(clients);
    }
    static GoogleCloudStorageClientSettings getClientSettings(final Settings settings, final String clientName) {
        return new GoogleCloudStorageClientSettings(
            loadCredential(settings, clientName),
            getConfigValue(settings, clientName, ENDPOINT_SETTING),
            getConfigValue(settings, clientName, PROJECT_ID_SETTING),
            getConfigValue(settings, clientName, CONNECT_TIMEOUT_SETTING),
            getConfigValue(settings, clientName, READ_TIMEOUT_SETTING),
            getConfigValue(settings, clientName, APPLICATION_NAME_SETTING),
            getConfigValue(settings, clientName, TOKEN_URI_SETTING),
            getConfigValue(settings, clientName, PROXY_TYPE_SETTING),
            getConfigValue(settings, clientName, PROXY_HOST_SETTING),
            getConfigValue(settings, clientName, PROXY_PORT_SETTING)
        );
    }
    /**
     * Loads the service account file corresponding to a given client name. If no
     * file is defined for the client, a {@code null} credential is returned.
     *
     * @param settings
     *            the {@link Settings}
     * @param clientName
     *            the client name
     *
     * @return the {@link ServiceAccountCredentials} to use for the given client,