Revert "Revert 159282 "Refactor fixed layout mode""

This reverts commit 22b76d037bbee7ffff5c06765d5675d60ec1ae85.

This was a speculative revert, but it turned out not to be the problem. Relanding.

TBR=bokan@chromium.org
BUG=306566

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

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