It's basically a port of #10951 to the new start page implementation.
Note: Icon files are not removed but re-used instead.
The commit adds some new functions:
* getThumbnailsImage()
Returns the name of the PNG inside a project file
* getThumbnailsName()
Returns the directory name containing the image files
* getThumnailsParentDir()
Returns the parent directory of the directory containing the image files
* getThumbnailsDir()
Returns the path to the thumbnail directory. There is no need to always create a unique directory
after each restart because it doesn't harm if the thumbnail directoy contains deprecated files.
* createThumbnailsDir()
Creates the thumbnail directoy if it doesn't exist yet.
* getSha1Hash
Helper function to compute a SHA-1 hash of a given path. If the same path is passed
then the hash value will be the same.
This way it can be avoided to create a different image file from a project file
after each restart.
* getUniquePNG
Computes the path of a PNG image file for a given project file. It's also possible
to pass an arbitrary string as argument.
* useCachedPNG
If the PNG image exists and if it's newer than the project file True is returned
and False otherwise.
For a given project file it is checked if the thumbnail directory already contains
a cached image. If it's newer than the project file it will used, otherwise it will
be re-created.
Fix freecadCanOpen() abd DisplayedFilesModel::addFile() to also check for lower-case
file extensions.