Fix storing avatars, so that they are not stored millions of times each

The original problem lies in the fact that QFile::rename() does not overwrite
existing files. Therefore it fails and the temporary file stays on the
filesystem together with the already existing avatar file. Checking if the file
exists before renaming solves this partially, but the problem is that this
operation is not atomic. There can be many processes using tp-qt, fetching
avatars at the same time from the server, and in this case we can still have
a problem there. The final solution is to ignore a new avatar that has the same
token as an avatar that is already on the filesystem. According to the spec,
different avatars have different tokens, so if an avatar changes, the token
changes as well.

https://bugs.freedesktop.org/show_bug.cgi?id=47647

Reviewed-by: David Edmundson <kde@davidedmundson.co.uk>
Merge pull request #2 from special/master

Cherry-pick upstream 43a3ca422337551ef4d2fb1331e8b765e0e13d0a