Java implementation of a forward checking sudoku solver