Use tempfile.mkdtemp for our icon cache instead of ~/.cache

• This lets us take advantage of the 10d max age of /tmp defined by
  /usr/lib/tmpfiles.d/tmp.conf

• Since /tmp is on tmpfs we avoid having to grab both icons from disk for
  every single message (I have no idea if the shell caches them for us).
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
Merge pull request #2 from lmacken/feature/2-icon-cache

Hash & cache icons.