Regularly check whether replication runloop should exit

Using [NSDate distantFuture] was meaning that the runloop blocked,
meaning that _stopRunLoop was never checked.
Introduce deleteDatastoreNamed method

This will delete the datastore and all associated files, including attachments and extensions.

Also disallow datastores to have the suffix _extensions, to avoid confusion with the
${datastore}_extensions directory.