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.