SpreadSheet

Instead using relative width and height to calculate everything, the
definitie positions are cached, and just need to be updated whenever the
row or height of a row /column changes.