Improve lifetimes on foldl/foldr and lift the Copy requirement

Closes #5311 and #4490.

This doesn't change `vec.foldl` because that's still part of `old_iter`, although I could change that as well if necessary.