Offer progress indication

I might just be thick, but when searching through the web and documentation, I could not find a way to get gcloud to report upload / transfer progress to the callee:

# Sit blocked & mute for N minutes
bucket.blob(path).upload_from_filename(local_path)

One pattern I saw recently from docker-py allows you to set an optional stream parameter, in which case the function returns an iterator with json strings:

progress = docker_client.pull(repository=x, tag=y, stream=True)

for line in progress:
    update = json.loads(line)
    # do something with line - fields include current bytes, total bytes

A quick search indicates this could be related to #1077.