More ports from aria-toolkit and enhancements

* Implicit semantics
* More audits:
 * RequiredOwnedAriaRoleMissing
 * DuplicateId
 * RoleNotScoped
 * BadAriaAttribute
 * UnsupportedAriaAttribute
 * AriaOnReservedElement
* Fixed BadAriaRole audit to handle abstract roles
* Several supporting changes and optimizations to utility methods and constants.
* A few minor formatting tweaks

Would it be simpler to keep the original property name and change references within the codebase instead (I'm sure there can't be many)? Those names were chosen when I didn't know there was an RDF and just scraped the HTML version :pensive:

If that would make this transform more straightforward then I say we do that. I'm 100% not wedded to the existing names.

On the other hand, if it doesn't really make a difference, then I'm all in favour of you not doing extra work.