Reimplemented EnumMap and renamed it to DMap

This now is simply a newtype wrapper for Function1 with
some useful typeclass instances for keys with an RpgEnum instance.