Made a start on a visualiser for the algorithm.

Post dojo, I thought it would be nice to use JavaScript yield keyword to make
a generator that provides an updated version of the board at various points
during the algorithm.

It probably needs more information stored in the board state to explain what
has happened, but this approach is a start towards visualising this algorithm.