moved the sudoku solver off into its own library, made it raise exceptions for errors to maintain the array of int in and out invariant, and updated the solver page to keep user input present in event of solve failure and to display solutions on the board