Removed precedence from GrammarDefinitions

So few elements use them that we'll add a separate structure.
Switched to CamelCase for enums

Before we were using the C/C++ ALLCAPS style,
but CamelCase enums seems to be more idiomatic in D.
Also, the C/C++ reasons for using all caps don't really apply here
since D enums must be qualified by the enum name.
Remembering that classes are reference types
Added epsilon option to a grammar type
WIP