Improve the way Validators are instanciated
Add class for generating and sending emails
Tidy up some inconsistencies and improve fnctionality
Cleanup the comments:

- Add missing ones
- Shorten method property docblocks
- Add @author tags etc