Call Element::rebuildLayoutTree from Document::updateStyle directly

This patch changes the callstack in Document::updateStyle to call
Element::rebuildLayoutTree after Element::recalcStyle instead of
from it.

It also adds helper functions needed to perform Layout Tree Construction:
1. ContainerNode::rebuildDescendantLayoutTree()
2. Element::rebuildShadowRootLayoutTree()
3. Element::reattachPseudoElementLayoutTree(PseudoId pseudoId)
4. ShadowRoot::rebuildLayoutTree()

It also changes the setting/getting of the (Child)NeedsStyleRecalc
and (Child)NeedsReattachLayoutTree bits to match this pattern.

BUG=595137

Review-Url: https://codereview.chromium.org/2473743003
Cr-Commit-Position: refs/heads/master@{#451987}
16 files changed