mapdict function
changed split_on so order of args is pred, xs.  BACKWARDS INCOMPATIBLE