Optional 'offset' parameter to Consumer

I have added an optional 'offset' parameter to the constructor of Consumer, to allow the user to start consuming messages from a predefined spot.  

This will allow the user use the consumer.offset value at the end of a consume batch at the start of the next one.