Simple InputStream implementation that is used to "unwind" some
data previously read from an input stream; so that as long as some of
that data remains, it's returned; but as long as it's read, we'll
just use data from the underlying original stream.
Specialized JsonParseException that is thrown when end-of-input
is reached unexpectedly, either within token being decoded, or during
skipping of intervening white-space that is not between root-level
tokens (that is, is within JSON Object or JSON Array construct).