next() after prev() more logical

Given this history:
`foo -> bar -> baz -> (current)`

When you go back twice, you are at `bar`, which is what you'd expect.

But when you go forth again with `next()`, you're still at `bar`, which makes no sense to me.

This changes stuff so that `next()` in this case will return `baz`.