Reset logic
Move utterance class to file
Grammar supports reverse lookup
Game decides on meaning to speak
Clean up code
item#induce logs utterance induced
Rename induce -> learn
Make item#should_invent? private
new Meaning.matches? predicate?, full? predicate
Grammar.reverse_lookup use Meaning.matches
Grammar maintain full meanings count
Game outputs avg. grammar size and meanings count
Fix dir of match check in grammar#reverse_lookup
Rename item -> player
Reverse order of grammar meaning->word

Clearer Grammar::Item.to_s
Clear up meanings.rb code

No need for so much class inheritence!
Meaning: Smarter full/partial/missing predicates
General algorithm for Player#lookup
Use numbers for missing parts in meanings
New Meaning.has? predicate