Implement mapWithKeys, traverseWithKey, mapAccum, mapAccumWithKey and mapAccumRWithKey

There are also Foldable and Traverse instances for CritBit