Updating README
Updating parameter semantics for MappingIterable and MonadicFuncition
filter: Adding Predicate and FilteringIterable
Adding test dependency on commons-lang3 for reflectionEquals/HashCode/ToString
zip/zipWith: Adding ZippingIterable, DyadicFunction and Tuple2
foldLeft: accumulate a result from left to right over an Iterable, starting with a default value
reduceLeft: specialized foldLeft where first element in an Iterable is the implicit starting accumulation; fails for empty Iterables
DyadicFunction#flip: return a new DyadicFunction with the original function's argument order reversed
same output
#cartesianProduct: compute the cartesian product of two iterables
Refactoring towards more of a function-first idiom and less towards an Iterable-based one. Not sure where this is going yet.
IterableFactory: adding convenience static factory methods for creating Iterable instances
#inGroupsOf: split an interval up into k-sized iterables
IterableMatcher: support for stringifying nested Iterables both for expected and actual now

Also addressing a rather nasty bug where the iterable instances returned in map/filter/etc. only created unique iterators per function invocation, instead of per iterator() invocation
#take: take up to n elements from an iterable
FilteringIterator: public Iterator implementation of previously anonymous implementation in #filter
SingleValueCachingIterator: seemed like a natural refactoring of capabilities out of FilteringIterator
DyadicFunction#partial: supports partial application now
IterableFactory: simplifying
Always: making Always itself a MonadicFunction
Identity: the identity function
Map: refactoring towards #filter pattern
MappingIterator: lazy mapping logic

Also adding various test harness plumbing for better testing semantics