[launchermodel] Remove unnecessary check for existing watch

From the Qt 5 docs: The path is not added if it does not exist, or if it
is already being monitored by the file system watcher.
[launchermodel] De-duplicate launcher settings handling

Combine duplicate code paths and avoid re-instantiating QSettings
objects all the time in different functions at the cost of having
two QSettings objects alive during the lifetime of the model.
[launchermodel] Allocate file system watcher on the heap
[launcheritem] Force reload by re-using setFilePath()

De-duplicate the code here as well to make it easier to maintain.
[launchermonitor] Rewrite monitoring of .desktop and icon files

Fixes problems where the launcher wouldn't find the icons in the right
location for some cases. Right now, this hard-codes the icon size to
86x86, but it can easily be extended later to pick a given icon size
and/or monitor multiple directories.

Monitoring of multiple directories with .desktop files is currently not
supported, but can easily be added (it wasn't utilized before as well).
[launchermonitor] Remove only one item per iteration
[launcher] Clarify some comments
Merge pull request #114 from thp/launcher-monitoring

Launcher monitoring