Geo: Verification failure should cause resync, not retry of verification
## Problem
The Geo Self-Service Framework verifies PackageFiles but currently it just retries verification if verification failed.
The behavior of project repos is basically: If verification failed for any reason, then update registry as if sync failed.
* https://gitlab.com/gitlab-org/gitlab/-/blob/v13.8.3-ee/ee/app/services/geo/repository_verification_secondary_service.rb#L51-89
* https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6759
This automatic healing behavior is very valuable, and already proven on project repos.
## Proposal
Let's use similar behavior in the SSF.
### To do
- [x] On `verification_state` transition to `verification_failed`, transition `state` to `failed`, setting `retry_count` to `verification_retry_count`, to ensure progressive backoff of syncs-due-to-verification-failures
- [x] Do https://gitlab.com/gitlab-org/gitlab/-/issues/301247. On `state` transition to `synced`, transition `verification_state` to `verification_pending`
- [x] If transitioning *from* `verification_failed` then don't clear `verification_retry_count`, to ensure progressive backoff of syncs-due-to-verification-failures
Why worry about "syncs-due-to-verification-failures"?
E.g. the primary checksum is wrong, so the secondary has persistent sync "success" plus verification "failure". The naive behavior here would be a verification/sync loop with no progressive backoff. This problem exists for project repos: https://gitlab.com/gitlab-org/gitlab/-/issues/208247
issue