Solves a partially solved Latin Square using backtracking (implemented with forward checking). It uses various Value Ordering and Variable Ordering heuristics for efficiency.