Fixed bug when cache was not updated while it should.

Currently it checks if modify time for directory is more recent than modify time
for cache and that may not always be true - some .desktop entry might be just
changed by update and that will lead to falsed cache contents.
To avoid that problem the menu-cached should always fill cache from existing
file if it exists and schedule its regeneration after that.