Tightening up MapTest and MappingIteratorTest
Introducing TriadicFunction and Tuple3
Zip: converting to TriadicFunction instance
ZippingIterator: pulling out first class iterator from Zip
FoldLeft: extracted foldLeft from Fold
FoldRight: extracted foldRight from Fold
ReduceLeft: extracted reduceLeft from Fold
ReduceRight: extracted reduceLeft from Fold
CombinatorialIterator: pull out first class iterator from CartesianProduct
Tuple2: using value equality now
GroupingIterator: pull out first class iterator from InGroupsOf
TakeWhile: splitting out #takeWhile from Take
ReversingIterator: pulling out first class iterator from Reverse
ZipWith: pulling out #zipWith and derivatives into class

Fixing a bug in CartesianProduct where if as had elements but bs was empty a NoSuchElementException would be thrown.
Adding trait-based testing with traitor
Moving TakingIterator to correct package
Refactoring functions to extend MonadicFunction or subtypes
Making functions final classes
Adding Mocking capabilities for mocking iterators