EnumTypeValue, EnumValue

Similar to Tyson's comment, I wasn't sure what the "Unspecified" stuff was all about. The implementation currently should let us do everything specified in https://github.com/whdl/whdl/wiki/Language-Specification#wiki-enums with the exception of explicit conversions from Value -> EnumValue, ie. TrafficLightDelay delay3 = 5 which I don't think should be a thing.

I think I'm still missing a little bit of testing with the EnumValue's equal() method.