only waiting when there is no data

It seems sensible to only wait if the last call did not return any messages.
This way the kafka server is not bothered with frequent and useless requests when the consumer has seen all messages. At the same time the consumer can fetch with maximum speed if there is new data.