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.
As far as I know, it only happens on ShadowRoot instances (which have DocumentFragments in them).  I was trying to be safe and just fallback to the original traversal in the more "complex" cases.

I'll add a comment