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
Yes, but if we create a directive that directly attaches to `ng-model` (and not to `input` or `textarea`, ...) they should be fine as well.