I believe this is a bug in `libcloud`. We're passing an iterator (as
required by libcloud --
https://github.com/apache/libcloud/blob/trunk/libcloud/storage/base.py#L592)
for the stream, but when verifying the hash of the uploaded file,
`libcloud` goes through the stream twice: https://github.com/apache/libcloud/blob/trunk/libcloud/storage/base.py#L614-L621
After the sending the file stream as an upload, when generating the
hash, the iterator has already been iterated through so the second
go-through returns an empty iterator. Thus, the hash will never match
unless an empty file is uploaded.
This change reaches into the container's driver so that we can pass the
`verify_hash` kwarg, which cannot be specified on the container's
methods.