Use delete tags service in container repository destroy service
Context
Related to #375261 (closed). Found while investigating its route cause.
Followup from #375604 (comment 1118935553).
Problem
In Projects::ContainerRepository::DestroyService, we're currently calling ContainerRepository#delete_tags! to delete all tags within a repository. However, by doing so we're not actually deleting tags (as the method name suggests) but rather the manifests that the tags point to (using #delete_tag_by_digest). This is done in two steps for each tag: first, we ask the registry for the digest of the manifest that the tag points to (1 HEAD request) and then delete that manifest (1 DELETE request).
I believe this is like so because the registry (GitLab's and most third-party ones) did not support tag deletions, so we had to delete the manifests underneath. However, this is no longer the case for the GitLab Container Registry.
Besides correctness (i.e. in a method named "delete tags" we should delete tags and not manifests), deleting manifests is a dangerous operation. Two tags, A and B, may point to the same manifest/image. Therefore, if we delete tag A like this, the image that tag B pointed to will also be gone.
This is a small problem because the delete_tags! method is currently only used when deleting the whole repository in Projects::ContainerRepository::DestroyService. In that case, it does not really matter if we delete tags or the manifests underneath, as we're aiming to achieve an empty repository either way. However, doing it like so represents at the very least a performance concern as we're doing two network requests when we can do just one. This is relevant for large repositories, where the longer runtime of this operation may leave us more exposed to failures due to transient errors that can eventually lead to data inconsistencies.
Implementation Guide / Proposal
Update Projects::ContainerRepository::DestroyService so that it uses the Projects::ContainerRepository::DeleteTagsService service to delete tags instead of ContainerRepository#delete_tags!.
While at it, and because this is the only place where we call ContainerRepository#delete_tags! (please double check), we can also remove the delete_tags! method as it'll no longer be used.