Introduce ValidatorInterface

This is to improve the compatibility with custom validators that do not want to or simply cannot extend our Validator abstract class.