Automatic tuning of chunk size in VMC driver
Created by: wdphy16
Implements #1054
In my original proposal it only works for drivers with _forward_and_backward implemented. If we want it to work also for TDVP, it's better to have a method in AbstractVariationalDriver that only does the computation once. For now I use TDVP._integrator.step, because TDVP.run or iter will do the computation many times until the target time is reached.