Fix offsets

These changes do the following:
* Only update offsets just before returning messages to the caller rather than after fetching them from kafka
* Never re-fetch messages already in the internal queue
* Clear the queue after seeking since the messages are no longer the right ones. It will clear the queue even if the offsets did not actually change, but I'm trying to keep the code simple instead of handling this corner case efficiently.
* Fix offsets stored in MultiProcessConsumer