#128 Adding support for enum mapping methods
#128 Raising an error in case an enum constant is mapped more than once
#128 Raising an error in case mapped enum constants don't exist
#128 Raising an error in case source enum constant without corresponding constant in target is not mapped