Solver switching support & implementation of Nesterov's accelerated grad...

...ient and AdaGrad
why make any of these three methods non-virtual? other solvers might have more/other state to store, other PreSolve steps.