Reland "Fix table pre-inflation", blink@r174263

This patch relands the table cell inflation patch from [1] but with
a fix for a crash on top sites including amazon.co.jp. The bug was
that tables can have two layout scopes (one from RenderTable::layout
and a second from AutoTableLayout::computeIntrinsicLogicalWidths)
which can cause endLayout to be called twice for the same node. If
the first endLayout removes all clusters, the second will crash
when accessing currentCluster(). This patch fixes this by simply
checking that the cluster stack is non-empty in endLayout.

[1] https://src.chromium.org/viewvc/blink?view=rev&revision=174263

TEST=table-subtree-layout-crash.html
BUG=371611, 375439

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

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