Condition is now SingleCondition, added EmptyCondition, AndCondition and
OrCondition classes (And and Or don't compute matches yet)
add ConditionBuilder, which builds possibly composite condition from
list of patterns or block
Rule no longer agregates the conditions or their matches, this is a
responsibility of the conditions themselves
Substitution now defaults to empty substitution
added inference and rule specs for multiple conditions (disabled for now)
ConditionBuilder now supports giving single condition in block