3448: check block timestamp before DELETE
volume.Delete locks the target file and checks the timestamp before
proceeding. If the file is newer than permission_ttl specifies, return a
PermissionError. This way, a block that has been marked for recycling by
Data Manager but subsequently was re-added by a user will not be
prematurely deleted.
PutBlock now updates the timestamp on the target block if it already
exists on disk, to prevent DELETE from recycling old blocks that have
just been refreshed.
To update block timestamps, the blob server uses the new volume.Touch
method. MockVolume and UnixVolume have been updated appropriately.
Refs #3448.