* Bug fix:
  - If a sparsely populated puzzle had two equal values in a row (i.e. invalid puzzle), then solveSudoku would enter either an infinite loop or a reeaaallly slow one.
  - Fixed by doing a quick validation before trying to solve. Validation is performed by calling isValid() on each of the input squares in the puzzle.