Datastore is now an interface using the abc module

Cleaned up datastore module with abc abstractmethod decorators. No need to create NotImplemented methods explictily.
Question: Would it be more appropriate to write this test as follows?
```self.assertIs(self.d.db, self.db_mock)```