TimeoutIterator is a wrapper over any iterator that adds peek_timeout and next_timeout functions.
The canonical use-case is parsing multi-line free-form records (such as tailing a log fime) where it is desirable to
consume the very last line, and peek whether the record continues on the next time, but not block
indefinitely on the peek.