Support style invalidation for ::content.

Start supporting style invalidation for selectors containing ::content,
but still use SubtreeStyleChange on distributed children of the content
element.

If you have a selector ".class ::content .target", we will not invalidate
the whole subtree for the element matching ".class", but do style
invalidation for elements matching ".target". We will not cross the
insertion point during invalidation at this point, but merely mark
content elements found during style invalidation with SubtreeStyleChange.

That may be done in a separate patch, but it requires the style
invalidator to have invalidation sets scheduled for elements inside a
shadow tree affect style invalidation of its host subtree.

The addition of :host-context as boundary-crossing and insertion-point-
crossing is in preparation for supporting style invalidation for the
:host-context selector.

This CL is split out of [1].
This CL relies on [2].

[1] https://codereview.chromium.org/639433002/
[2] https://codereview.chromium.org/637273003/

R=esprehn@chromium.org,chrishtr@chromium.org
BUG=424123

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

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