SolverCeres stop solving if can update
Ceres has ceres::IterationCallback
which is called after each iteration. Since we have multi-threading, this can be used to (optionally) stop solving if the solver has to be updated (problem notifications not empty).
This way we can set the solver with huge number of iterations and 0 period (solving always) to only build the problem again if factors/stateblocks changed.