An Enum implementation similar to flufl.enum and Python 3.4 enum, except behaves more like a Java enum