Download: Use the typed array view instead of the buffer

The ArrayBuffer holding the data might be over-sized in case the
data length was not known during the transfer, e.g. when using a
Content-Encoding other than `identity` or when using a
Transfer-Encoding.
Only the view into the buffer has the correct length then, hence
always use the view directly when creating the blob URI for the
download, instead of the over-sized underlying buffer.

Closes GH-3627
Closes GH-3634
Merge pull request #3634 from nmaier/download-buffer

Firefox: Corrupt downloads ("padded" downloads) when there is no content length