first steps towards a file cache
Prevent concurrent downloads stomping each other

* Files being downloaded should not be able to be read
* Files being read from should not be able to be re-downloaded
* TODO: prevent files from getting expired from cache while being read from

[#70128462]

Signed-off-by: Chris Adams <cadams@pivotallabs.com>
Add filed caching