Utils: add a zip iterator variadic template
address Joel's comments
Move every boundary check to max_boundary check to avoid unnecessary checks