Given the sparsity of lattice Hamiltonians should we have custom evolution routines? Or does `DiagonalCoulomb` cover enough of these uses?