Fix floating row header size

The floating row header that is used to always display the row header
fails to be sized properly when the content of a cell in a row is
larger than the standard size. This fix causes the floating headers to
set their size based on the underlying row, and caches the row header
sizes so that the vertical scrolling remains smooth with varied sizes
in the row headers.