When Does Preconditioning Help or Hurt Generalization?