Implement newly proposed DOM selection approach

There may be some possible improvements for selecting light-DOM nodes in a shadow-rooted element with no contained content element -- I also tried querying the whole DOM natively and traversing it instead of the wrapped tree (https://gist.github.com/jcmoore/69a49f887e03c1d2bfa1#file-queryselector2-js) but it was no faster than the original method, and probably had significant memory implications.
These now need curlies {}

```js
    if (target instanceof OriginalElement) {
      list = originalElementQuerySelectorAll.call(target, selector);
    } else if (target instanceof OriginalDocument) {
      list = originalDocumentQuerySelectorAll.call(target, selector);
    } else {
      // When we get a ShadowRoot the logical tree is going to be disconnected
      // so we do a manual tree traversal
      return findElements(this, index, result, p, selector, null);
    }
```