Add support for enumeration tagging in the schema file.

Generate a map[EnumType]string that maps the enumeration codes to a friendly string. The string is taken from a $tag annotation added to each declaration in the schema file.
Convert enum tag lookup from a map to a generated switch statement.

Also, generate tags for each enumerant by default, and add a notag annotation for disabling the default behavior.
Use idiomatic String() method to return the tag name.

Works with %v string formatting.
Merge peterwald:enum_tags
Update documentation for enum.String()
Type_which -> Type_Which for union tag type