Using "filter" in "passing" to remove code duplication
Using "array_walk" in "each" to remove code duplication
Using array_filter with ARRAY_FILTER_USE_BOTH when possible, in "filter"

Note that testing this function requires to run the tests both with PHP 5.6+
and PHP 5.5
Added 'filterMap'

* new method filterMap which acts like map, but only if the test succeeds
* rewrite of map to use filterMap
* rewrite of filter to use filterMap
Using "mapReduce" in "reduce" to remove code duplication
Using functors instead of closures

* added Functor\AlwaysTrue
* added Functor\AlwaysFalse
* added Functor\Identity
* "map", "reduce" and "filter" now use functors instead of closures
Merge pull request #6 from mattjmattj/code-duplication

Removed code duplication