Reland "Encapsulate CSS selector declarative content condition tracking"

This is the first step in a refactoring of the declarativeContent API
implementation. The goal is to facilitate profile state matching by
providing abstractions for conditions and condition state tracking
and evaluation.

This CL consists of step 2 described in the associated bug: encapsulation of CSS
selector condition tracking logic. No functional change is intended.

Originally committed at https://crrev.com/fe76220cf0a1cdcfe74ca7daeae9f1da2b91cc6b
and reverted at https://crrev.com/4fcf9f62d9099af2e55186d9c423e2ded4fdca0d due to crashes.

BUG=492946, 497586

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

Cr-Commit-Position: refs/heads/master@{#333627}
14 files changed