Graphic hash filename for caching
fdroid update create a filename with the SHA-256 of the file contents as part of the filename for all "graphics" files (icon.png, featureGraphic.png, tvBanner.png, promoGraphic.png). This filename is then used to make a hard link to the actual file in its original name. The SHA-256 filename is then used in the index. This provides a way for fdroidclient and browsers to reliably cache the file forever yet still update when the file changes. It makes the filename be tied to the file contents. So new filename means new contents, and unchanged filename means unchanged contents.
This also includes two changes to setup.py from the 1.1.x release cycle.
Thanks to @uniqx for working through all the details of this problem and solution. ANd thanks to @ploink and @BO41 for providing all the profiling work which made it clear that this work is a priority.