The LRU cache that is currently inside the RocksDbStore class. As part of
KAFKA-3776 it needs to come outside of RocksDbStore and be a separate component used in:
1. KGroupedStream.aggregate() / reduce(),
2. KStream.aggregateByKey() / reduceByKey(),
3. KTable.to() (this will be done in KAFKA-3779).
As all of the above operators can have a cache on top to deduplicate the materialized state store in RocksDB.
The scope of this JIRA is to extract out the cache of RocksDBStore, and keep them as item 1) and 2) above; and it should be done together / after
Note it is NOT in the scope of this JIRA to re-write the cache, so this will basically stay the same record-based cache we currently have.