Have fetchers support rewinding and add builder to encapsulate construction

We do this somewhere else? I'm mainly asking because this is different from the usual "continue" parameter almost all APIs use. "Continue" gives you the first element you should fetch in the next batch. It will end in tears if we ever need to mix these two concepts.

This is obviously not a reason to block this change, I'm just asking.