Allow snippet blobs to be cached by an external storage
Related to https://gitlab.com/gitlab-com/gl-infra/scalability/issues/4 and https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/6829.
Spun-off from https://gitlab.com/gitlab-org/gitlab/issues/193498.
Snippet raw blob paths doesn't match regular blob paths (`*/raw` vs `*/raw/*`), so we would need update [this function](https://gitlab.com/gitlab-org/gitlab/blob/73cb40118bc29c65a53d9b6d103a0150b6e40181/lib/gitlab/auth/user_auth_finders.rb#L195-197). Other than that, the change would mostly look like https://gitlab.com/gitlab-org/gitlab/merge_requests/20936/diffs.
issue