feat(NgModel): introduce the $validators pipeline
fix(NgModel): make sure the required validator uses the $validators pipeline

Fixes #5164
fix(NgModel): make sure the pattern validator uses the $validators pipeline
fix(NgModel): make sure the ngMinlength and ngMaxlength validators use the $validators pipeline

Fixes #6304
fix(NgModel): make ngMinlength and ngMaxlength as standalone directives

Fixes #6750
fix(NgModel): ensure pattern and ngPattern use the same validator
fix(NgModel): ensure the HTML5 minlength and maxlength attributes work with NgModel