Allow requests past the final element, but truncate the result

This is to make next -> prev idempotent
Refactor