Custom pseudo element types as an invalidation set feature.

Instead of falling back to full subtree recalcs for invalidation sets
affected by custom pseudo elements, use a flag in the invalidation set
saying that custom pseudo elements need to be invalidated. Can be extended
to invalidate specific custom pseudo element types, but it will probably not
be necessary.

The reason for optimizing this in the first place is to make it possible to
use invalidation sets for :hover/:active/:focus changes where descendants
are affected by changes to those states. The UA stylesheet contains
selectors for :hover/:active/:focus where such state changes affect
descendants and the rightmost compound selector has a custom pseudo element
as its only sub-selector.

R=esprehn@chromium.org
BUG=351613

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

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