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.
By extending a Readable stream, we get event emitting for free. All streams are EventEmitters. We also don't need to recreate pipe functionality, or other stream mimicry.