Offset enhancement for consumer

 Offset enhancement for consumer. User can pass offset as a parameter to consumer, with the following values:  
Previous (-1): position stores in zookeeper last time; 
CurrentBeginning (-2): current beginning offset (may not be 0 due to TTL); 
PreviousOrCurrentBeginning (-3): Get previous offset firstly, if not available, use current beginning; 
Latest (-4): Start from latest, like tail;
Any other value >= 0: actual offset, raise exception if the offset is invalid.  
Yongkun Wang and KiranRaj Mariyappa