Storing sizing calculations in a data structure that represents the ui components:
topViewport
topCanvas
contentViewport
contentCanvas
header
subHeader
Took everything apart, renamed it, put it back together again.

```
To support pinned columns, we slice up the grid regions, and try to be very clear and consistent about the naming.
    Visual Grid Components
                            [0]       [1]
                          ....................
    topViewport           .     .            .     // The scrolling region
      topCanvas           .     .            .     // The full size of content (both off and on screen)
        header            .     .            .     // The column headers
        subHeader         .     .            .     // Optional row of cells below the column headers
                          ....................
    contentViewport       .     .            .     // The scrolling region for the grid rows
      contentCanvas       .     .            .     // Full size of row content, both width and height
                          .     .            .
                          .     .            .
                          .     .            .
                          .     .            .
                          .     .            .
                          ....................
```