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 the intention is to handle custom element directives and non-semantic elements made accessible with roles. Is there a better place where `tabIndex` should be handled in that case?