Datastore is now an interface using the abc module

Cleaned up datastore module with abc abstractmethod decorators. No need to create NotImplemented methods explictily.