The solver is now not specific to Sudoku but pretty much any game where
a set of square tiles needs to be filled according to a specific rule.
Since it is not specific to Sudoku any more, it is a bit less performant,
but that is not a big issue in my use case, so is fine.