The Puzzle type represents a particular crossword. The
crossword's dimensions are specified by width and height.

The contents of the puzzle are given by two arrays of Squares -
grid and solution. The board arrays are in row-major order
and are numbered from (0,0) to (width-1,height-1). The grid
board represents the current state of play, and as such its
squares may be partially or entirely filled in, correctly or
incorrectly. The solution board should have the same basic
layout as the grid board (in terms of black vs letter squares),
and should be entirely filled in.