removing AbstractEnum

tl;dr we are removing this because inheriting parents with static
methods is the absolute suck
adding test for creating enums
adding code to pass tests, removing erroneous documentation
adding example for usage