Turned RuleHistory into an interface
Improved Rules

Added EOL Rule
Added CollectingRule as a  super class to some rules, to allow us to
determine whether to collect tokens or not.