Refactor and clean up code for copying results to/from the cache
Lots of cruft and copy pasta has collected during the years.
* It's enough to let get_file_from_cache detect missing files in the
cache; no need to check before.
* Made the order of the handling of the different file types consistent
in various places.
* Removed the tmp_cov, tmp_su and tmp_dwo variables. I cannot
see why they just aren't redundant since the corresponding output_*
variables already exist with the same value. Except for the "GCC has
some funny rule" part, but that seems bogus anyway since tmp_* and
output_* must be equal for things to work. Let's just ignore it for
now.
* Removed the support for generating placeholders for .cov and .su files
if the compiler doesn't create them. Modern compilers always create
them, and I want to reduce code complexity.