sweet: avoid a temporary file by streaming GCS file contents in "get"

Currently `sweet get` is very inefficient: it completely downloads the
compressed assets into a temporary file, then it hashes it, then it
extracts it. There's no reason this can't all be done while streaming
from the start, and it saves a ton of temporary disk space (currently,
assets are around 4 GiB in size).

Change-Id: Id47423e0ddeac5f7084a5ca02038f3061ea726dd
Reviewed-on: https://go-review.googlesource.com/c/benchmarks/+/382096
Trust: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Pratt <mpratt@google.com>
3 files changed