Adding the ability to create a custom stream class from a stream factory
Adding a caching entity body decorator and cleaning up other entity body decorators
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).
Only incrementing the size of a stream when a size was initially set
Fixing stream size calculation bug