Refactor unpack_http_url.
Cached or already-downloaded files with bad hashes are ignored.
Better interaction between already-downloaded and already-cached.
Add changelog entry.
Fix guessing content-type for already-downloaded file.
Don't copy to cache when we've already got a cached copy.
Merge pull request #968 from carljm/cache-hash-fail

Retry download if cached download (or already-downloaded file) have bad hash