feat(NgModel): port the URL input type to use the validators pipeline
feat(NgModel): port the email input type to use the validators pipeline
test(input): test that input[email"] and ngRequired don't interfere w/ eachother

ngRequired added to an email field wasn't working properly. ng-invalid-required
stayed true unless a valid email was entered.

correct behaviour is that it turns to ng-valid-required at first entered key.

Closes #7849