Should not allow style sharing if grandparents matches different rule chain

This patch fixes a regression introduced in
https://chromiumcodereview.appspot.com/24106007

Before the regressing CL, the style sharing finder strictly checks style
object identity for every elements on the ancestor chain to allow sharing.
The regressing CL changed that so only the parent element is checked.

An optimization in Element::recalcOwnStyle allows previously shared style to
keep sharing if the computed style hasn't changed, even if the parent no
longer shares style. The mix of both causes problem with descendant elements
to misblieve they can share style when their grandparents now matches
different rule chain.

This patch disallows the optimization, so we have the invariant
(a->renderStyle() == b->renderStyle()) implies (a->parentElement()->renderStyle() == b->parentElement()->renderStyle())

BUG=296882
R=leviw@chromium.org

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

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