Pretty Darn Good Crossword Solver