Add streaming upload support.

This changes the resumable upload strategy from uploading in 100MB
chunks and instead uses small buffers to shovel data into an HTTP
transfer.