Hash the icons to caching storing duplicates
Call __del__ atexit to ensure our cache gets cleaned up.
Unlink duplicate icons if their checksum is already in our cache