handle case where grid is shown w/o rows

when `grid.show()` is called, the grid has to adjust the size of the header columns to match the table in case there was a `grid.rerender()` while the grid was hidden.

there's a corner case where the grid has no rows, in which case we don't want to try to re-size the headers. this change handles that corner case.