Improper rack-attack discriminator for `authenticated_packages_api` with a deploy token
### :fire: Problem
We currently have several [rack-attack throttles](https://github.com/rack/rack-attack#throttlename-options-block) configured. One of them is `throttle_authenticated_packages_api`. When this throttle is triggered, the discriminator is the [`user_id`](https://gitlab.com/gitlab-org/gitlab/-/blob/542ca3dcfd56e9e5581af62ff16b939c895ae097/lib/gitlab/rack_attack.rb#L98).
That `user_id` comes from https://gitlab.com/gitlab-org/gitlab/-/blob/542ca3dcfd56e9e5581af62ff16b939c895ae097/lib/gitlab/rack_attack/request.rb#L14 which in turn will use https://gitlab.com/gitlab-org/gitlab/-/blob/542ca3dcfd56e9e5581af62ff16b939c895ae097/lib/gitlab/auth/request_authenticator.rb#L32.
The problem is that this function doesn't read deploy token objects.
The discriminator will thus be `nil` = the throttle evluation will be [aborted](https://gitlab.com/gitlab-org/gitlab/-/issues/342481#note_696360176) = all packages api with deploy token will not be throttled.
The same problem was discovered for the dependency proxy routes in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/71532
### :fire_engine: Solution
The straightforward solution would be to update `#find_sessionless_user` so that it returns deploy tokens. Unfortunately, that function is used in rack-attack throttles _and_ here: https://gitlab.com/gitlab-org/gitlab/-/blob/542ca3dcfd56e9e5581af62ff16b939c895ae097/app/controllers/concerns/sessionless_authentication.rb. That concern is used in several rails controller.
Given that impacting several rails controller at once is not a great idea, we will need an alternative.
Introduce `#find_sessionless_user_or_deploy_token` which uses `#find_sessionless_user` and upgrade it with finders for deploy tokens. Once we have that, the discriminator could be the object type + id. For example: `user.23` or `deploy_token.23`. Using only the id will not work as we can have clashes between user ids and deploy token ids.
issue