Handle expired CI job artifacts with orphaned projects
What does this MR do and why?
Previously when a project were destroyed without cleaning up its CI
job artifacts, ExpireBuildArtifactsWorker would log errors every
time it came across this artifact. This might block CI job artifacts
from being expired.
We now handle the nil project case and destroy the artifact.
Relates to #497426 (closed)
Edited by Stan Hu