Ensure unique Enum values

- Add a new Validator which will check for uniqueness and  append increasing numbering to names
- Use this to ensure that Enum names are unique
- Refactor class name validation to use new uniqueness validator