AbstractCondition introduced to reduce boilerplate

Since last changes introduced name() method in Condition interface, and it will match with name of class implementing condition in 90% of cases, it is cool to have abstract base class that reduces this boilerplate.

WDYT?