[LayoutNG] Fix %-resolution for ancestors of table cells.

This patch does a few things:
1) Introduces the concept of a "ReplacedPercentageResolutionSize".
   This is needed as replaced descandants of table cells have a
   different percentage resolution size than normal descendants.

2) This adds a bunch of special cases for how percentage resolution
   sizes are handled for table cells.

3) Adds the "scrollable" children of table cell quirk. This is during
   the "measure" phase, scrollable children contribute nothing to the
   size of the cell.

4) Adds the "box-sizing: border-box" table cell quirk. That is
   percentage children, during the layout phase, are sized as if they
   have box-sizing: border-box on them.

It was easier to perform all these changes as a single monolithic patch
to ensure correct behaviour.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I881a21662bfdf6b4ab7a0f62df6970143008ebca
Reviewed-on: https://chromium-review.googlesource.com/1207890
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: David Grogan <dgrogan@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591507}
20 files changed