storage: download integrity check

### Do not merge
- [ ] integrity tests

Picking up from #299, where we're implementing integrity checks for uploads.
On master, this function will only ping for metadata if it doesn't have the mediaLink (where we request the download from). But, now that we need to compare against the metadata's md5Hash, I wasn't sure it was a good idea to rely on potentially stale metadata. So, now it will always refresh the metadata before beginning the upload.