Critical fix in C++ grid layout

push_cell() and push_divider() member functions failed to check for an empty span lists prior to accessing back() to calculate our next span starting point.

The code worked intermittently, but should now work reliably with an empty() test.