Solves Sudokus with 3 approaches:
1. Simple Backtracking (1..9) - VERY SLOW
2. Reduced Domain Backtracking (Only values which satisfy initial grid constraints) - SLOW
3. Constraint Propagation Backtracking (Updates possibilities for each cell as we go) - VERY FAST