Perform SVGUseElement instance tree updates at the start of recalcStyle

Previously SVGUseElement would modify the DOM inside ::attach or
::willRecalcStyle. That required a terrible hack in the style machinery
since the <use> could add a new <style> to the DOM in the middle of a
recalcStyle. This patch moves that logic to a pre-recalcStyle phase
so we can remove that hack and add an ASSERT that the DOM is never
modified from inside recalcStyle.

I also noticed that the updateDistributionIfNeeded() step inside
Document::recalcStyle was not before the inspector timeline logic. This
patch moves that step and the new one below the inspector timeline logic
so that the time spent in "recalcStyle" in the timeline is reported
properly.

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

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