Attempt at an automated crossword setter/solver.