generalise abstractvariationaldriver
Created by: PhilipVinc
This PR shuffles a bit the logic to compute the steps in abstract variational driver.
The aim is to make it more general, and give some points where other drivers can plugin to customise this behaviour.
Most notably, this would allow a TimeEvolution integrator as a subclass of AbstractVariationalDriver, and use it's run
method that handles all loggers and progress bar, which I would dislike duplicating...
It also allows to pass in multiple loggers, and to log arbitrary data that are not observables.
For VMC and SteadyState drivers it changes nothing.