[marin-community/marin#7166] [levanter] Fix checkpoint step-naming off-by-one
step-N on disk now means "N training steps have completed". Previously periodic and end-of-training checkpoints were saved one short of the boundary they appeared to represent: a 50000-step run with every=1000 ended at step-49000 (periodic) plus step-49999 (force-save) rather than step-50000.
The trainer's checkpoint hook passed info.step — the 0-indexed "just-completed step index", i.e. state.step - 1 — into Checkpointer.on_step, which treats its argument as a 1-based completed-step count for both the modulo trigger and the on-disk destination. The hook now passes info.next_step (= state.step), so the two agree. The step == 0 early-return in on_step still does the right thing: zero completed steps means no save unless force=True.
This also tightens the _last_save_step guard so a force=True save is skipped when a checkpoint already exists at that step. The end-of-training force-save previously over