Support fetching higher sizes until a message is returned.

If `max_size`, `min_size` and `fetch_step` are all given, then the Kafka
fetch will start at the minimum and fetch an increasing amount up to the
max until a message is fetched or the max is reached. The client still
will have to confirm on their end that a message is returned.

Supports `consumer.poll` and `consumer.fetch`.