Add code so we don't try to obsolete files someone else has 'claimed'.
It turns out you can't infer the content of pack-names after the fact,
the issue is that _diff_pack_names has already lost some info.
In the 'deleted' case, if we locally have deleted a file, and that
entry is also deleted from the pack-names file, the '.difference_update()'
won't remove anything, but .update() would add it.