Rename item -> player
Clean Player#generate_id
Add Utils.longest_common_substring
Add Grammar#generalise_part
player.rb require grammar
Add Meaning#[]= setter
Rename Grammar::Item -> Rule
Grammar#learn can handle Rule as argument
After incorporation, merge rules in grammar
Grammar is not Hash
Only merge non-equal rules
Fix loop over missing_parts