New CacheDownloader

* Rate limit - 1 download per cache key at a time
* Properly track the use of readers
* Handle all the errors properly (remove shadowing of err)
* Remove files as failures occur

[#79624026]
Add cache key to lager session data

[#79467290]

Signed-off-by: Michael Fraenkel <fraenkel@us.ibm.com>