storage: docs & rewrite streams.

`ReadableStream` and `BufferStream` implement stream.Readable, and I created a `WritableStream`, which works similar to Readable, but obviously in reverse :)

This also includes elongated documentation.
> How does this work if you read from a gigabyte file and doesn't have an access token initially?

Like you said, it would buffer it into memory the way this is designed. I looked around for any kind of libraries or at least examples of use cases like ours, but couldn't find anything. It would be nice to not open the read stream until the write stream is ready. I don't think there's a solution at the time, other than forcing token validation before allowing a stream to be opened.