major refactoring

replaced the single Grid class with 2 classes (Game and Puzzle) and 2 modules (PuzzleSolver and PuzzleGenerator). Updated all the tests to correspond to changes in code.