Specialize workers for ProjectAuthorization calculations
We currently trigger a project authorization refresh for everyone with access to the group or project one by one. For bigger groups this generates a lot of jobs, flooding the queue. As the worker is marked as high urgency, this design makes it hard to meet the latency goals. We want to keep the high urgency for the user initiated the action but we might reconsider it for the rest of the group / project members. (Removal should still happen instantaneously).
During refresh, we consider all group and project memberships of the users, the inheritance hierarchy of the groups, personal projects, group sharing, and project sharing. This generates a lot of overhead, while in most cases, only a subset of them changed.
From [https://gitlab.com/gitlab-org/gitlab/-/issues/213533#note_324352129](https://gitlab.com/gitlab-org/gitlab/-/issues/213533#note_324352129):
> Specialising jobs so that 'add a project in a group' doesn't refresh every user's project authorisations, but does a bulk insert of authorisations for all users in the group at once.
This would make the queue less bumpy (ideally 1 job for an action, instead of 1 for every user in the group / project involved in the action).
The list of endpoints that use the generic `AuthorizedProjectsWorker`: https://log.gprd.gitlab.net/goto/2e4b87b47dc528d1fde62abf804c9aca
epic