Setup parent stylesheet for tree boundary crossing rules.

The purpose of the patch is to store information about parent stylesheets for
rules that are crossing tree boundary. Currently, this information is missing,
thus DevTools do not allow to edit them.

To achieve this, the patch modifies TreeBoundaryCrossingRules data structure from
storing <ScopingNode, RuleSet> to storing <ScopingNode, CSSStyleSheet, RuleSet>. 
Iteration over this new data structure is somewhat tricky, so logic related to
collecting matched rules is moved in TreeBoundaryCrossingRules class as well.

BUG=337016

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

git-svn-id: svn://svn.chromium.org/blink/trunk@170929 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Delete RenderLayer::CalculateLayerBoundsFlags

The callers of RenderLayer::calculateLayerBounds are now almost consistent in
how they expect the layer's bounding box to be computed. This CL removes the
bitfield that we previously used to get different answers out of this function.

The only caller that wants something strange is
CompositingReasonFinder::requiresCompositingForPosition. That function wants to
know what the layer's bounds might be in some alternate universe in which the
scene was composited differently. This caller should eventually be removed, but
for now I've added an enum to let it keep its current behavior.

This CL also renames calculateLayerBounds and overlapBounds to make it clearer
what these functions are computing. I've also cleaned up the code in
boundingBoxForCompositing a bit.

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

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