Improving the CachingEntityBody
Fixing the stream size of a caching entity body to allow the size to be
the greater of the buffer or remote stream.
Fixing __toString() to properly combine the buffer and remote stream
Skipping bytes written over the remote stream to emulate how other r/w
PHP streams work (you overwrite bytes, you don't insert bytes and push
out things after it).
Using fstat() for local streams rather than loading streams into memory
and getting the strlen() (previously used for temp streams).