[LayoutNG] Fix crash related to clearance and margin collapsing.

The root of this bug was that the parent bfc, and child with clearance
were fighting as to what the BFC block offset should be.

The child was always returning true within:
NeedsAbortOnBfcBlockOffsetChange
... as the floats bfc offset was never equal to the child bfc offset,
as the child got affected by clearance.

This fix is to adjust the FloatsBfcBlockOffset by clearance to check
if we need to relayout or not.

Additionally we were performing more layouts than we should be,
when propagating the BFC block offset up the tree upon an abort. We
should be checking if the child got affected by clearance, and if so
adjust the resolved BFC offset accordingly.

Bug: 923271
Change-Id: Id39905a5445a0fe502c16b956b92d6db13885d36
Reviewed-on: https://chromium-review.googlesource.com/c/1423929
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#625411}
3 files changed