Make the Rule behavior compatible with RuleSet's.
Unify ArbitrisRuleSet and ArbitrisRule.
Refactor class structure.
Fix bug that gives a false-positive when no pairs of a nested rule set
matches.
Change method name 'when' of RuleSet class to 'incase' in order to avoid
future confusion with the same name method in Context class.