Add function 'converse'
Add function 'ruleIsInvariantUniOrInj' and instance Ord Rule

(instance Ord allows us to use Rule as a Data.Map key)
Massive refactoring (1/2): Conjunct keeps track of all originating rules

Back-end only.