add mapGroup to the typed API

@avibryant comments/review?

Note, I had to revert the covariance on K in Grouped/KeyedList. It was probably ill-founded to begin with, but with mapGroup it seemed to be untenable. It seems requiring the K to match in a Group/CoGroup is needed.

did some simplifying here on ReduceStep. Will continue the cleanup in the next PR.