Track intruding and overhanging floats

Keep track of which floats in the floating object list are intruding or
overhanging so that they can be removed from the list before the
container is and it's children are destoryed. This makes it impossible
to access an already destroyed float renderer when detaching the tree.

In addition, use the new knowledge about intruding and overhanging
floats to only copy the FloatingObject entries for contained floats in
moveAllChildrenIncludingFloatsTo.

This also fixes a bug in FloatingObject::unsafeClone, it shouldn't copy
the originatingLine, because that allows breaking the rule that the
renderer for the line must be the same as the renderer that contains the
FloatingObject instance.

BUG=245727

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

git-svn-id: svn://svn.chromium.org/blink/trunk@165002 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Simplify FrameLoader and DocumentLoader initialization

DocumentLoader should take a Frame* in its constructor. Currently, the locations
that create a DocumentLoader are expected to immediately call setFrame() on it.
This is the only time setFrame() is called.

FrameLoader::m_progressTracker should be initialized immediately, rather than
waiting until init() completes. None of its callsites are reachable during
creation of the initial empty document.

BUG=none

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

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