Introduce NGFloatingObject

NGFloatingObject holds all information needed to position floats in
old/new layout tree.

If a float can not determine its position in space (for example because
of margin collapsing case) it is added to the fragment's
UnpositionedFloats list. When we reach the fragment that can resolve
its position in space all pending floats will be positioned and added
to the PositionedFloats list. PositionedFloats list is used to
create/place  FloatingObject in old layout tree.

BUG=635619

Review-Url: https://codereview.chromium.org/2642823008
Cr-Commit-Position: refs/heads/master@{#445488}
12 files changed