New ReusableInputStream for caching input streams for re-use.  
Swaps memory overflow to file.
New ByteBufferInputStream for reading a ByteBuffer as an InputStream.