Avoid using has_exposed_artifacts column
Problem
The column p_ci_builds_metadata.has_exposed_artifacts is used in https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/services/ci/find_exposed_artifacts_service.rb#L0-1 to find jobs with exposed artifacts.
As described in #546674 (comment 2535522351), the usage of this column is very limited and we should be able to avoid using this indexed column by filtering over pipeline.builds.latest and preloading options data. This should still be efficient while allowing us not to depend on the has_exposed_artifacts column.
Later, when we introduce job prototypes, options will be deduplicated and the data will still be available.
Later iterations
After we stop using has_exposed_artifacts we need to do Store `artifacts:expose_as` into a different table (#549079 - closed) so that we can retain this data long-term and not be dependent on the archival period of job prototypes (entire archived partitions).