Replace tight coupling of Action and Condition classes by removing their
common base class and converting it into a function.
The RuleComponent was a base class solely holding a compile function and
passing it to its children. There is no need for tight coupling with
inheritance for that purpose.
Related #2659