Grid rows can store an arbitrary number of cells:
* GridRows initialised with objects instead of parameters.
* All data stored in CellData to prevent conflict with existing GridRow fields.
* Nodes created on-demand.
* Automatic detection of controls for each cell.
* Addition of class overrides for rows and cells.
Store node references in CellNodes to prevent GridRows conflict.