Return value of SolverFactory::newSolver() is now a smart pointer