Clone meaning to not disturb original instances
Utils.longest_common_substring shouldn't count digits
Clean up code + debug msgs in Grammar#merge
Placeholder for grammar#clean
Cleaner Utils.longest_common_substr

Shorter, allows customizing disallowed chars, supports
array of strings.
Rewrite Grammar#merge logic

Avoid contaminating a rule before done mergeing from it.
New methods Grammar#add_rule, Grammar#delete_rule
Only return new rule if not nil
When changing rule, move it inside rules hash
Meaning#to_s outputs missing part indexes