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

...ient and AdaGrad
In fact this change does nothing; these methods are all implicitly virtual, and the virtual keyword should be restored (see #590).