Fix memory leak
Consistent gaurd clause name
Introduce DirectoryX

This class is mainly responsible for looping over the content of a directory
Use DirectoryX to search for desktop & icon files
Test that directories searched for .desktop files exist
Allow multiple iterations for entries inside a directory