Add a feature to EnumAttr definition to generate
specialized Attribute class for the particular enumeration.
This class will inherit StringAttr or IntegerAttr and
will override classof and getValue methods.
With this class the enumeration predicate can be checked with simple
RTTI calls (isa, dyn_cast) and it will return the typed enumeration
directly instead of raw string/integer.
Based on the following discussion:
https://llvm.discourse.group/t/rfc-add-enum-attribute-decorator-class/2252
In what situations is this not desirable? This seems always desirable given that we could add utility methods for things like symbolization, getting the case value, etc.