Utility functions

savePuzzle, printBoard, lots of code changes
Dialogs

Added help dialog and clear solution dialog.  Check for unsaved puzzle
on close.  Miscellaneous code improvements.  The solver will  now handle
reasonable puzzles, but not the 12-by-21 monsters in the "Martial Arts"
series.  It's good enough to get started on the client, however.  I'll
make a custom solver incrementally.