This takes combined multiple ByteBuffers into a single InputStream by wrapping them in ByteBufferInputStreams and then using a java.
This takes combined multiple ByteBuffers into a single InputStream by wrapping them in ByteBufferInputStreams and then using a java.io.SequenceInputStream to combine them.
NOTE: This calls duplicate() on the ByteBuffer to prevent modifying the original