Fix SafeCopy instances.

SafeCopy now converts EnumMapMap (k1 :& k2 :& k3) v to (Int, (Int, (Int,
v))) which should be more efficient.  I also avoids overlapping instance
errors.