Support external rules in TransformerRule interface
TransformerRules are dedicated for use in NodeTransformer with other rules, but interface implementations has no information about other rules, therefore it may introduce inconsistencies in transformed expressions accordingly to entire set as a whole. Since given transforms are considered local, i.e. should match and replace only limited (and small) subgraph, it is reasonable to support external rules in interface instead of multiple transformation runs. Consider using abstract class in place of interface to enforce respecting external rules.