Sudoku solver

I believe this will solve all sudoku puzzles. It first attempts to apply six simple strategies that a human might use to solve a puzzle, and if this doesn't yield a solution it then resorts to solving by force, i. e. guessing values and seeing if they lead to contradictions.

I was dismayed to find after writing this that there are are plenty of sudoku solvers written in JavaScript on the web, many with much more advanced logic built in, but having looked at those I decided I would leave that kind of stuff to them and focus on making my solver user-friendly.

To this end, a feature built into this is a log of the solver's working; for each stage of the solving process you can click on the appropriate line in the log and the grid will display the state at that point, or use the buttons to step through the solution stage by stage.