Finer grained control over when offsets are committed to zookeeper.

Committing offsets adds load to zookeeper. Since zookeeper clusters
cannot be scaled horizontally, clients may opt to to reduce the load on
zookeeper by relying on automatic commits (via auto.commit.enable and
auto.commit.interval.ms consumer properties) rather than having the
offsets committed after every batch of events are processed.
you want to try parsing this only when `value` is null?  How about adding a unit test for this?  The argument is just a map and easily passable