fix: open datastore in readonly mode when appropriate

A _SemiDBMReadOnly instance now opens the datastore in
readonly mode.