feat(ngAria): add an ngAria module to make a11y easier

I made some significant refactors to #8342, notably:

* DRYing up the implementation
* unDRYing up the specs so that the assertions/failures are more specific
* Naming watch functions to make debugging easier
We should have a directive for `ngModel` here, that checks:
- `required`
- `invalid`
- `value`

Via that we don't need those cases in `input` and `textarea` separately.

And I would expose the flags of `$aria` on the service so that the directives can read them.