storage: download integrity check

### Do not merge
- [ ] integrity tests

Picking up from #299, where we're implementing integrity checks for uploads.
I thought 911 was catchy, but really, we should use a code of some sort. It can also be a string, "ERROR_DOWNLOAD_MISMATCH" or something equally as yelly?