The HMapDatabase mimics the behaviour of LMDBDatabase without keeping a persistent copy of the key-value records.
It allows key-value pairs to be inserted, retrieved and removed in a thread-safe manner.
This is a simple wrapper struct that lifts the generic parameters so that KeyValStore can be implemented on
LMDBDatabase. LMDBDatabase doesn’t have the generics at the struct level because the LMDBStore can contain many
instances of LMDBDatabase each with different K and V types.