add support for cache_timeout as well as timeout (#8078)
### Description
We currently have a single API client however some types of calls should
be handled differently that others. The cache in particular should not
cause a hard error if it times out during upload, only if it fails to
connect. `cache_client` is currently only used for uploading artifacts.
TODO: decide on an env var name and add docs. Going to defer to monday's
meeting for this.
### Testing Instructions
New unit tests.
Closes TURBO-2974