feat(interface) add ThreadsafeDatastore interface

ThreadsafeDatastore declares a datastore thread-safe by extending the
Datastore interface.

Callers who desire thread-safety may use this interface to assure that
the datastores they use provide this property.

Datastore implementers may satisfy the ThreadsafeDatastore interface
by defining the no-op method `IsThreadSafe()`