clean up KeyValueDB instantiation

This cleans up some of the kinetic stuff and lays things out for rocksdb.
You mean they shouldn't need to pass in the const string& type?  That's needed because various config options control which implementation is used in different contexts (mon, osd filestore -- based on what is recorded on disk or based on the config option at mkfs time, osd keyvaluestore, etc.).  Or do you mean something else?