Initial offsets need to consult kafka

If a partition is set to roll over based on size or expiry, then the
initial offset of 0 for a consumer group will be wrong since it doesn't
exist. Furthermore, if a client is offline for a very long time, then
its latest offset may also no longer exist.

To fix, we check each partition to make sure that the zookeeper provided
initial offset isn't lower than kafka's current lowest offset.