Refactor S3ClientFactory to introduce endpoint and version support in createClient, and update getDefaultClient to use it.
S3ClientFactory
createClient
getDefaultClient
Closes #3543332