storage: download integrity check

- [x] integrity tests
- [x] merge #299

Picking up from #299, where we're implementing integrity checks for uploads.
Docs at top of this PR say that by default the validation is MD5 but here we are specifying to run both.