implement restarting strategy on solver
Restarting the optimization every N iterations significantly improves the convergence rate.
We should implement it in talon.solve
. We have to decide how many iterations per restart we want to do, if we want to allow a callback at every restart and what the visual output should be.