An JoinedIterator is an Iterator that wraps a number of Iterators.
?*This class makes multiple iterators look like one to the caller.
?* When any method from the Iterator interface is called, the JoinedIterator
?* will delegate to a single underlying Iterator. The JoinedIterator will
?* invoke the Iterators in sequence until all Iterators are exhausted.