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
@tbosch I believe this was added for custom element directives such as `<material-checkbox>` so they can easily listen for state changes.