Datastore is now an interface using the abc module

Cleaned up datastore module with abc abstractmethod decorators. No need to create NotImplemented methods explictily.
I should have simply written
```self.assertIsInstance(self.d, UserDict.DictMixin)```
in the first place. Care to refactor it for me?