Move style sharing logic into its own class

This creates a new class SharedStyleFinder to hold (almost)
all of the style sharing logic.  The encapsulation is not
perfect, mostly due to the sprawling dependencies
necessary to do rule matching at this time.

This moves a large amount of code out of StyleResolver.cpp
and I think we should land this and iterate on the last
remaining layering violations in style sharing.

BUG=259202
R=dglazkov@chromium.org

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

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