Actually make the PreviewImageProvider's logic make sense
Actually make the PreviewImageProvider's logic make sense

Prior to this, the logic was kind of built around having an asynchronous
thing going on, but also it was using the blocking kjob api, which made
most of it not make a lot of sense, and also just didn't work at all
well. The new implementation is simultaneously simpler, and actually
supports the abort functionality that it was supposed to to begin with.

KDE/peruse,KDE/peruse,KDE/peruse