Moving responsibility down to childs

### I'm proposing this change because of following reasons:

1) "abstract" class `Arity1Operators` shouldn't hold responsibility for its children (because `Arity1Operators` does not know how many children has )
2) It would go against **S.O.L.I.D** (more precisely **open closed principle**), that says "code should be open for addition, but closed for modification". When we want to add new child of `Arity1Operators` we do not have to modify `Arity1Operators`, we just add new class and extend it (so we don't have to maintain switch of children, we let **polymorphism** to figure it out for us).

Also added default implementation of to_sql for all Operators, by default it throws `NotImplementedError`, so we are forced to implement it.