changes mapping approach to not use Pool.map

the argument passing was someway obscure, this way is clearer, though
performance should be measured.

creates process function in SimpleMapReduce to run both, map and reduce
functions given a queue.
also creates a merge_reduced function. when reduce is called multiple
times it doesn't remember its last reduced values, merge_reduced solves
this problem.