added collection_caching with support for fetch_multi
support cases where multi_read returns a hash
refactor _cache_key and _keys_to_collection_map methods