Change the interface of DbModel to more closely match KeyValueStore

This means we don't have to support all of the methods in dicts without
when we don't have the same support for those methods in the underlying
storage.

[LMS-826]
Merge pull request #59 from cpennington/non-dictionary-dbmodel

Change the interface of DbModel to more closely match KeyValueStore