Follow redirects in DownloadCache

Previously, if the DownloadCache encountered a 3xx (redirection)
response, it failed the download because it didn't know what to do
with it.  This change adds support for following a redirect (301, 302,
303, 307) and downloading the file as if it was the original URI.

[#69089318]
Merge 69089318-download-cache-redirects to master

[Completes #69089318]
Merge remote-tracking branch 'upstream/master'