This patch adds the scaffolding needed for the fasttextautosizer
multiplier calculation. This brings us much closer to good
autosizing behavior: now passing 32 of the existing autosizer tests!

An important part of this patch is adding FTA::prepareForLayout().
This hooks in at FrameView::performPreLayoutTasks and handles
invalidation logic for the clusters (i.e., if the window size
changed or any of the cluster's blocks change, the cluster gets
a recalc).

The "cluster recalc" logic re-computes a cluster's root
and multiplier. This is mostly straightforward but there is a tricky
loop for calculating the lowest common ancestor of the blocks of
a cluster. This will be refactored into a proper Cluster class in
a future patch.

The multiplier calculation itself follows from the existing
TextAutosizer.cpp implementation.

TBR=pdr@chromium.org
BUG=302005

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

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