Switched to phrase matching.  13162 Attempts!

Switched to phrase matching.  Now we get the  length, space locations,
and do a total of 5 word guesses.  The word guesses are used to reduce
the size of individual word collections.   In addition, each guess
carries extra payload to probe for more information.

Then we use the cross product of the 3 word collections, apply all
known constraints to enumerate a possible phrase dictionary.  The
phrase dictionary is then solved with additional guesses - as we would
a more traditional game.
Result: 13162 attempts

The code quality could do with a lot of improvements yet!