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

I'm not sure about these spinbutton roles. For a start, a date input is implemented in Chrome desktop as three spinners plus an expandable calendar widget, in Safari desktop as a text field, in Chrome Android as a field that pops up a native date picker widget, etc. I suspect this polymorphism is why these fields are left blank in the document. Is there a particular reason why you've mapped them this way?