Created abstract validator
Created validator interface
Created validation failure exception
Created template for validators
Added customizable process to run after validation failure
Added method to generate decorators depending on their own names
Added handler for validation errors
Merge branch 'feature/validation' into develop