Backtracking!

- Added states. Each state includes the grid and the terms. If a word is added to the crossword then it is recorded as a new state and added to the front. If a certain state leads to no words found that can be added, then the state is removed from the front and added to the dead-end list.
- Lexicon is now indexed by word length for faster search. When trying to add a new word, we start our search from the sub-lexicon including words of maximum length and decrease the word length one by one every time the search is fruitless.
- Increased max rounds to 10,000.
- minimum word length is now a constant.
Return best crossword from all states

- Iterate through past states and return the crossword that included the most terms, even if it was a dead end.
- Max rounds were brought down back to 100.
- Added code to measure the time it takes to generate the crossword.