Add header cache to GenericObjectMap

Header plays a critical role in KeyValueStore, in order to improve performance
to reduce much calls to backend store cache IO path or touch actual IO, cache it
at GenericObjectMap. It will bring on much performance improvement for
KeyValueStore.

Add a new option "keyvaluestore_header_cache_size" to control the size of cache.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>