Serious refactoring of Gene Validator class

I spent some time reorganizing the AgnGeneValidator class.
I still need to rethink whether certain functions should be global or private, and either way some functions still need documented prototyes.