Enormous refactoring.
CharacterField is now a protected class of Puzzle.
The word list is now self-maintaining with its own custom SpringLayout.
Added lots of documentation.