Runner says "Cache extracted successfully" if cache-extractor gets 404 response for cache URL

Summary

commands/helpers/cache_extractor.go defines a gitlab-runner cache-extractor command that is used to pull and extract the cache from a remote URL. If thst URL returns a 404 response, the command finishes with an exit code of 0.

shells/abstract.go takes that to mean that the cache extraction has successfully completed, and outputs a message to that effect, confusing matters.

Steps to reproduce

Just run the command with http://localhost/notexist.zip or so

Actual behavior

Build output on cache miss looks like:

Extracting cache
Checking cache for master...
Successfully extracted cache

Expected behavior

Extracting cache
Checking cache for master...
Cache not found!
Assignee Loading
Time tracking Loading