Generally (in the non-degenerate case), `KeyValueStore` is going to be database backed, not memory-backed, so iterating over all the keys would be a bad thing.

Also, we can add `__contains__` if/when we actually want to use them later, at no cost to the subclasses.