Draft: draft for how we could have icalculate() yield event objects
This MR provides a slightly more polished calc.icalculate()
experience since it will now yield the same SCFEvent objects that SCF convergence criteria can see.
from ase.build import bulk
from gpaw import GPAW
atoms = bulk('Au')
atoms.calc = GPAW(mode='pw', kpts=(4,4,4), txt='gpaw.txt')
for ctx in atoms.calc.icalculate(atoms):
print(ctx)