[LayoutNG] Use NG to measure table cell intrinsic sizes.

We used to use the legacy engine to measure min/max inline sizes, and NG
for layout. This actually worked surprisingly well, but not for
orthogonal flow children, because they expect pre-layout in legacy [1],
but that won't happen in NG.

Have all LayoutNGMixin types use NG to calculate intrinsic sizes, by
moving code out of LayoutNGBlockFlow, so that they can all benefit from
it, and also add a special rule for table cells [2], to honor specified
inline-size on table cells and columns.

In order for us to not regress quirk tests, we also need to implement a
quirk: pretend that there's no break opportunity before or after images
that are direct children of a table cell. This is a measure quirk.
During layout, standard breaking rules are still to be applied.
See https://quirks.spec.whatwg.org/#the-table-cell-width-calculation-quirk

[1] LocalFrameView::LayoutOrthogonalWritingModeRoots()
[2] Taken from LayoutBlock::ComputeIntrinsicLogicalWidths()

Change-Id: If55ca18ad48dec39b1a1ce2df24b12d145607117
Reviewed-on: https://chromium-review.googlesource.com/c/1394600
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#620908}
36 files changed