Tupler2: create a tuple from 2 inputs
Dropping IterableFactory as its benefit was negligible
#unfoldr: unfolds an infinite iterable from a single seed value through successive iterations of a function
#drop: drop first n elements before iterating an iterable
#dropWhile: drop elements while a predicate holds true, beginning iteration at first non-successful element

SingleValueCachingIterator: overjoyed to be rid of this horrid idea. Replaced with significantly conceptually simpler RewindableIterator
RewindableIterator: Iterator supporting single use per element rewinding and re-queuing.