Log Saver process throws OOM exception. 

Currently there is no limit on the number of events that can be in the in memory messageTable which could cause the Log Saver to throw OOM.

Fix is to maintain the in memory window of events containing fixed number of buckets (controlled by config variable "log.saver.event.max.inmemory.buckets") in the messageTable. 

If the in-coming event falls out of the window then sleep till the window moves forward and include the event.  
Right now a single instance of LogCollectorCallback is used for all partitions of Kafka. This sleep will block reading from all partitions, which is not desirable since a big partition can block all other small partitions. Instead change `LogSaver.subscribe()` to add a different instance of callback for every partition.