Begin work to allow iterators take iterators as values. Adds Parallel and RoundRobin iterators.

Permute and Subset iterators have not been converted yet. Sequence iterator is no longer needed since Iterator now covers the same functionality.

This also introduces some basic sub-classing to reduce code duplication.
Remove obsolete SequenceIterator (Iterator now includes the functionality)
Update readme