More map filter reduce

Updated according to @rixner 's test case. Now uses `tp$iter()` and `tp$iternext()`. Also adds a test for calling reduce with an empty list and no initializer.

`map()` needs to be extended to take multiple lists see: http://docs.python.org/2/library/functions.html#map