Clear floats that are nested in previous siblings and don't overhang.

If margin collapsing involving negative margins moves a child up into a previous
sibling we need to clear any floats it contains no matter how nested they are.

This means that we should keep a record of the lowest enclosed float around so
that siblings with negative margin can clear/avoid it if necessary. We do this already
we just need to be more thorough about it.

There could be performance implications here.

BUG=535381

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

Cr-Commit-Position: refs/heads/master@{#353126}
3 files changed