Make sense of ContainerNode::takeAllChildrenFrom

takeAllChildrenFrom does a bunch of suspicious things like calling
removeDetachedChildren and then checking if nodes are attached and detaching
them in the following loop. Looking at the primary caller of this function (the
adoption agency) it's clear that normally these nodes _are_ attached as well so
calling removeDetachedChildren as not safe. This would also make us 
render objects on nodes that were no longer in the DOM which is bad.

The code also did document().adoptNode() asserting no exception _after_ calling
removeDetachedChildren, which meant the removeChild inside adoptNode would never
run and the exception throwing logic would never run making the call to
adoptNode identical to adoptIfNeeded. Knowing that we can just never call
adoptNode and only call adoptIfNeeded.

We can also skip the mutation record code and just depend on parserRemoveChild
to do it for us. While this will enqueue more mutation records from the
adoption agency algorithm that shouldn't matter since it's rare and the number
of nodes moved are also usually quite small. It's also unlikely to matter since
the parser is adding a record for every node it appends so a few more removals
is unlikely to matter.

This patch massively simplifies what this function was doing and renames it
parserTakeAllChildrenFrom since that's what it really should do.  It also exposes
that editing is doing something weird and appending nodes to a Document
that normally should not be there.

Review URL: https://chromiumcodereview.appspot.com/24424003

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