refactor onError relabeling of DestFile as '.FAILED'

This helps ensure three things:
- each error is reported via ReportMirrorFailure
- if DestFile doesn't exist, do not attempt rename
- renames happen for every error

The last one wasn't the case for Size mismatches, which isn't nice, but
not a exploitable problem per-se as the file isn't picked up and remains
in partial/ where the following download-try will at most take it for a
partial request which fails the hashsum verification later on

Git-Dch: Ignore
put fetch errors in 'source' on our errorstack

refactor the fetching process so that it looks more like the
others we have in the hope that we can reuse code in the future.

This is a soft interface change as 'source' previously printed
errors directly on stderr, while it will now push it onto our usual
error stack.
use pkgAcqArchive in 'download' for proper errors

With a bit of trickery we can reuse the usual infrastructure we have in
place to acquire deb files for the 'download' operation as well, which
gains us authentification check & display, error messages, correct
filenames and "downloads" from the root-owned archives.