implement mapEitherWithKey

I tried to use this to implement `mapMaybeWithKey`, but the naive way (composing the mapped function with a function taking `Right`s to `Just`s ...) was twice as slow.