NSArray supports lightweight generics in ObjC. Our extension on NSArray for map/filter/reduce does not. This change tweaks the interface to better support generics. Also, fixes some tests that weren't compiling.