ShadowRoot should support adjacent rules (~ and +) and positional rules (:nth-child and :nth-of-type).

Since shadowRoot is not an element, shadow root should also have the same logic as an element has, i.e. childrenAffectedByPositionalRules, childrenAffectedByDirectAdjacentRules, and so on.

SelectorChecker should use parentElementOrShadowRoot to check siblings when positional rules or adjacent rules are given.

BUG=337573
TEST=fast/dom/shadow/sibling-rules-under-shadow-root.html

Review URL: https://codereview.chromium.org/143933003

git-svn-id: svn://svn.chromium.org/blink/trunk@167322 bbb929c8-8fbe-4397-9dbb-9b2b20218538