storage: support resumable uploads

RE: #298

It works!

It's 200 lines, but it works!
Discard data up until we're caught up to the byte offset. Then, make it available for the API writable stream.