Simple and extendible validation provider and directive for AngularJS