Add an ensureRange() call to ChunkedStream_makeSubStream().

By checking if the data is all present before making a substream, we avoid
cases where we parse part of a stream and then throw a MissingDataException
part-way through, which forces us to later re-read the stream -- possibly
multiple times. This is a sizeable performance win for some cases when file
loading is slow (e.g. over the web).
Don't get bytes eagerly when creating {Jpeg,Jpx,Jbig2}Stream objects.

This avoids lots of unnecessary work when such streams are referred to via
fetch(), and so their bytes aren't subsequently read. This is a large
performance win on some files.
Don't get bytes eagerly when creating FlateStream objects.