refactor validators for cat 1

Refactor validators so they have the same parameters for validation and refactor common code into a module. Clean up how test executions are done for cat 1 (cat 3 needs more work)
The fields in ValidationError were just redefinitions of what was in ExecutionError, so they didn't do anything. I didn't remove the class because I didn't want to (possibly) break additional stuff in the Cat 3 code.