Remove `calculateHeadersWidth()` and `setHeadersWidth()`. No reason for canvas width calculation to be different between top (header) and content regions, they're both based on summing column widths. Also experimenting by removing the -1000px dance the headers were doing. Makes it easier to reuse the top canvas for original header and subHeaders
rowHeight and subHeaderHeight are now determined by your CSS, measured once by JS on grid init. Completed rename to remove $canvas, $viewport (not specific enough). Including an example with a header row.