Remove incremental compositing update in RenderLayerScrollableArea::updateAfterStyleChange

We don't appear to need this incremental update anymore.

BUG=343756

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

git-svn-id: svn://svn.chromium.org/blink/trunk@175730 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Move GraphicsLayerUpdater::rebuildTree into its own file

GraphicsLayerUpdater::rebuildTree and GraphicsLayerUpdater::update no longer
have anything to do with each other. This CL move rebuildTree into a separate
file, called GraphicsLayerTreeBuilder.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@175731 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Call insertedInto or removedFrom before childrenChanged

To avoid needing put all the children into a NodeVector
inside removeChildren() we can reverse the order of childrenChanged
and the associated child notifications (insertedInto/removedFrom).

This seems fine, it means that a parent now is not told it has new
children until they've already been told they're in the tree.
Inversely it does mean that when a child is told it's in the tree
the parent doesn't know it has new children yet, but that's less
crazy since it doesn't result in things like children without
inDocument() bits being set existing inside ::childrenChanged.

For removal I swapped the calls to notifyNodeRemoved with
the calls to childrenChanged.

For insertion I moved the call to childrenChanged into the
notifyNodeInserted function. This is necessary since it can
run script and we need to call childrenChanged before running
the script.

I also added some more RefPtr<Node> protect(this) guards
to methods which can runs script and more ScriptForbiddenScopes
to parts of the code that now can't run script.

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

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