Ports from aria-toolkit and enhancements

Added audit for multiple explicit owners.
Added audit for aria-owns DOM descendant.

Enhanced (and renamed) "non-existent-labelledby" audit to cover all id reference types: 
 * aria-activedescendant
 * aria-controls
 * aria-describedby
 * aria-flowto
 * aria-labelledby
 * aria-owns

Added a few utility methods to support some of the new functionality.
Added IE11 support.
Added unit tests for RequiredAriaAttributeMissing audit.
Unit tests for all changes.
Sorry for all the nits...
- line up (element... with ownedElement on the previous line
- enclose single line inside if block with {} since condition goes over two lines
```
if (ownedElement &&
    (element.compareDocumentPosition(ownedElement) & Node.DOCUMENT_POSITION_CONTAINED_BY)) {
    return true;
}
```
(Yeah, it's unfortunate that the return statement lines up with the second line of the conditional...)