fully repaired + new features

-fixed problems with opts object (which means fully functional message
passing between iterations of reductions)
-works correctly for associative arrays
-you can add custom reductions