datastores work

Ensure we update the datastore after we update the database object.
Where possible.

This means if something goes wrong updating the database object we
haven't tried to update the datastore.

Don't call the datastore save method unless we really have to.

Don't log Deleted messages, no point, these messages get deleted
when object is deleted.

Change-Id: I30b368d18d9e843e6778456b9b669c833295d9d9