Cache several vectors to avoid malloc/free churn

distributeSpaceToTracks and
resolveContentBasedTrackSizingFunctionsForItems are both
called in a loop during layout and resulted in a lot of
mallocs / frees calls. This change just keeps their Vectors
around until the end of Layout, keeping the memory around.

This is a classic runtime vs memory trade-off as we will hold
onto the biggest allocation until the end of layout, which
should be fine as we *have* to allocate that amount.

This code refactors the often passed-in arguments & the cached
Vectors into a new data structure GridSizingData. This makes
the code cleaner while making it difficult to forget free'ing
the memory at the end of layout.

This is a 40% improvement on auto-grid-lots-of-data.html.

BUG=273238

Review URL: https://chromiumcodereview.appspot.com/24331003

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