Fix table pre-inflation.

Previously, tables were pre-inflated from the layout scope in RenderTable::layout, and the inner table's multiplier was constrained to be <= the outer table's multiplier, since the outer table has already sized its columns by the time the inner table is laid out.

This led to complex/brittle logic for descending into inner clusters in inflateTable (see shouldDescendForTableInflation) and special cases for tables and table cells in clusterHasEnoughTextToAutosize which were never entirely correct.

Furthermore it was possible, even with this constraint on the multiplier, for the inflated inner table to overflow the column width that was computed before the inflation; this is seen in http://crbug.com/371611.

In this patch we inflate table cells in AutoTableLayout's intrinsic-width calculation, which recurses into inner tables.  This way the inner table is inflated while the outer table is sizing its columns, *before* the inner table actually enters layout.

This lets us remove the constraint on the inner table's multiplier and associated ugliness.

Because table cells are now inflated before they enter layout, there is some logic in widthFromBlock that tries to read the width specified in style or in a containing block, and use that as the basis for the multiplier.

Some tests have been marked NeedsRebaseline; I checked the output in all cases and it looks reasonable.  For a couple of tests (single-percent-width-cell-lots-of-text.html and clusters-sufficient-width-expected.html) the patch actually fixes some previously expected brokenness.

BUG=371611

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

git-svn-id: svn://svn.chromium.org/blink/trunk@174263 bbb929c8-8fbe-4397-9dbb-9b2b20218538