Deleting a pipeline does not remove job artifacts
### Summary
[`Ci::DestroyPipelineService`](https://gitlab.com/gitlab-org/gitlab/-/blob/990ef96e16f9472ac6e611580a1259fca4ac446b/app/services/ci/destroy_pipeline_service.rb) class calls `pipeline.destroy!` to remove the pipeline record and it cascades the job artifacts removal [through database logic](https://gitlab.com/gitlab-org/gitlab/-/blob/990ef96e16f9472ac6e611580a1259fca4ac446b/app/models/ci/pipeline.rb#L45-46) which does not update the project statistics and it does not remove the job artifacts from the object storage.
### Steps to reproduce
https://gitlab.com/gitlab-org/gitlab/-/issues/223034#note_364552012
### Possible fixes
Extract the part which [removes](https://gitlab.com/gitlab-org/gitlab/-/blob/9fc33b5917423111cbff1d0c25544cbbabbb1ce3/app/services/ci/destroy_expired_job_artifacts_service.rb#L71-80) expired artifacts into a new service that accepts an array of job artifacts like specified in https://gitlab.com/gitlab-org/gitlab/-/issues/223793#proposal and use it here to move `ci_job_artifacts` records into `ci_deleted_objects`.
This must also work for parent-child pipelines.
issue