vec: add a by-move iterator