Persistent ShardKV (first pass, no recovery)

Passes old tests and seems to work, but need to write new tests that
address persistence.

Need to add recovery and ability to delete values from memory's store if
getting too big.  May also add commit point to allow returning before
disk finishes writes in case values are very large (should be
straightforward to do).