Highly customisable form and input validations directive for AngularJS