TODO and use self.possible_values instead of explicit range
Fix printing -- had the x and y coordinates flipped
Add quick routines for parsing the puzzles in puzzles/
Convert Euler puzzles into Norvig format
Couple tweaks to help with parsing Euler and Norvig puzzles

- Make xy_key and xy_kwargs_key classmethods
Create keys then assign values in __init__
Working on search()