os/MemStore: implement reference 'memstore' backend

This is (as near to) a trivial ObjectStore backend for the OSD as we can
get at the moment.  Everything is stored in memory.  We are slightly
tricky with the locking, but not overly so.

On umount we dump everything out to disk, and on mount we load it all in
again, so we have some very coarse persistence/durability... just enough
to make this usable in a non-failure environment.

Currently missing: split_collection.

Signed-off-by: Sage Weil <sage@inktank.com>