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::rebuildChildrenLayoutTrees()
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.

The patch also adds a LayoutTest to test for the crash caught
in crbug.com/695950.

BUG=595137

Review-Url: https://codereview.chromium.org/2473743003
Cr-Original-Commit-Position: refs/heads/master@{#451987}
Committed: https://chromium.googlesource.com/chromium/src/+/8b6c7b7ce5a36d8eda49dd6e60c5e7c8f5c7277f
Review-Url: https://codereview.chromium.org/2473743003
Cr-Commit-Position: refs/heads/master@{#454824}
18 files changed