Properly cache icons

We should improve how we currently handle icon caching, ideally by leveraging the tempfile handling of systemd. :recycle: