Remove redundant calls to up inside next

`next` currently calls `up` multiple times depending on the execution path, which in turn results in multiple calls to `make-node`. While this doesn't make a substantial difference to the performance of `vector-zip`, custom zippers in which `make-node` is more expensive benefit from removing the redundant calls.