cpptools: add class AbstractFunctor1<> and AbstractFunctor2<>

To stay coherent, AbstractFunctor<> was renamed to AbstractFunctor0<> (as well as
newFunctor(...) to newFunctor0(...)