This class extends ByteReader who's source of bytes is from a
The StreamingByteReader will read ranges of bytes (chunks) from
a source using a RangeReader. If bytes are requested from it
that require chunks it does not have, it will fetch those chunks
and store them in memory. If the maximum number of chunks
is reached, the oldest chunks will be kicked out.
A new instance of StreamingByteReader