querySelector should match across shadow boundaries with /shadow/ and /shadow-deep/.

- Also fixing querySelector with :host and :ancestor, because something like ":host /shadow/ *" selectors will be often used by web developers.
  Added a layout test for testing :host and /shadow/, /shadow-deep/.

- querySelector should not return any elements in user-agent shadow roots.
  fast/dom/shadow/querySelector-for-useragent-shadowroot.html tests this.

- querySelector should correctly return elements in document order in multiple-shadowroot case.
  fast/dom/shadow/querySelector-for-multiple-shadowroots.html tests this.

BUG=337616
TEST=fast/dom/shadow/querySelector-for-multiple-shadowroots.html,fast/dom/shadow/querySelector-for-useragent-shadowroot.html,fast/dom/shadow/querySelector-with-shadow-all-and-shadow-deep.html

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

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