The majority of all addVisitor callers follow the same pattern:
addVisitor(std::make_unique<SomeVisitor>(arg1, arg2, ...));
This patches introduces additional overload for addVisitor to simplify
that pattern:
addVisitor<SomeVisitor>(arg1, arg2, ...);