Purge archived allocations

This uses the same method that `Allocation::_delete` uses to remove archived allocation data.

Neither the unarchived nor archived versions of `purge` use a commit observer to delete files the way `Allocation::_delete` does.