refactor kafkaMdm to manage its own offsets.
refactor kafkaMdm to manage its own offsets.

- removes use of sarama-cluster.
- As kafkaMdm currently always consumes from all partitions, using
a consumerGroup just adds complexity without any up side.
- Instead of storing parition offsets in kafka, this change now tracks the
offsets in a leveldb database. Offests are flushed to the index every 5seconds.
- In addition to tracking the offsets, this commit also makes it
easier to specify where a consumer should start from. The options
are:
 - newest: the newest data available.
 - oldest: the oldest data available.
 - last: the last commited offset.
 - <duration>: a time.Duration amount of time ago to start from. eg
       "30m" would start consuming from data written 30minutes ago.

replay/metrictank,raintank/metrictank,raintank/metrictank,replay/metrictank,raintank/raintank-metric,replay/metrictank,raintank/raintank-metric,OOM-Killer/metrictank,raintank/metrictank,OOM-Killer/metrictank,replay/metrictank,OOM-Killer/metrictank,raintank/raintank-metric,raintank/metrictank