Smarter refreshing of authorized projects
This MR reworks the way `User#refresh_authorized_projects`, resulting in a much more efficient process leading to fewer dead tuples.
Related issue: https://gitlab.com/gitlab-org/gitlab-ce/issues/25257
See merge request !7956