Given a text parser, produces
a transformation of a stream of text chunks into a stream of parsed results.
In case of a parsing failure it raises an Error in the EitherT monad over the base.
Consume only as much input as needed to run the provided parser once.
Results in either a failure or the parsed result and the leftover stream.
The failure value of Nothing implies the end of input.