Move the game solved notification out of the sudoku engine and into the app logic.
Added 'Restart' and 'Solve' buttons to the UI. The 'Reset' button resets the timer and clears the board using a new function Sudoku.prototype.clear(). The 'Solve' button calls Sudoku.prototype.solve() which causes the board solution to get filled in and the timer to stop.