Fix a bug where seeking beyond the end broke things
Refactor Cursor#internal_next

There was so much that was the same between #forward_next and #reverse_next