Introduce enable/disable server option
os/KeyValueDB: generic create(), test_init()

Let us create an implemenetation by name.  Include a test_init() method
that will instantiate an instance and verify it could start up.

Signed-off-by: Sage Weil <sage@inktank.com>
(cherry picked from commit 4bf929ef21b6710f60f01cb8f7095ad0a440709f)
os/KeyValueDB: make compaction interface generic

Signed-off-by: Sage Weil <sage@inktank.com>
(cherry picked from commit 86a0b9dd9ad2f3b0996b3f72a79fd1b13726b4ad)
mon/MonitorDBStore: uninline init_options (assume leveldb)

These assume leveldb but we can't reference that from the header
(for ceph-dencoder's sake).  Not that this is firefly-only; upstream
this has been cleaned up.

Note that we statically cast to LevelDBStore.  This *only* works
here because leveldb is the only backend supported!

Signed-off-by: Sage Weil <sage@redhat.com>
mon/MonitorDBStore: use generic KeyValueDB::create()

Signed-off-by: Sage Weil <sage@inktank.com>
(cherry picked from commit a2a36192c28e4961b92c576172185a915daef366)

Modified to assume leveldb.