### SUMMARY

Update validate-modules to report messages using named error codes like `version-added` instead of error numbers like `E305`.

This would match the behavior of other tools we use, such as pylint, which have one named error code per rule. This will also make ignore entries much easier to read.

Doing this before 2.9 is released will avoid potential backwards compatibility issues with ignore entries in collections.

##### ISSUE TYPE

Feature Idea

##### COMPONENT NAME

validate-modules

super(ModuleValidator, self).__init__(reporter=reporter or Reporter())
        self.path = path
        self.basename = os.path.basename(self.path)
        self.name = os.path.splitext(self.basename)[0]
        self.analyze_arg_spec = analyze_arg_spec
        self.collection = collection
        self.base_branch = base_branch
        self.git_cache = git_cache or GitCache()
        self._python_module_override = False
        with open(path) as f:
            self.text = f.read()
        self.length = len(self.text.splitlines())
        try:
            self.ast = ast.parse(self.text)
        except Exception:
            self.ast = None
        if base_branch:
            self.base_module = self._get_base_file()
        else:
            self.base_module = None
    def __enter__(self):