xdgmime: Finer handling for cases where mmap() is not available

`mmap()` is not reliable/available on Windows.

Allocate an empty cache object, check cache objects for being empty
before using them.
Otherwise the code will re-read cache every 5 seconds, as NULL cache
does not trigger the code that stores mtime, which makes the cache
file appear modified/unloaded permanently.

2 jobs for Finer_handling_for_cases_where_mmap_is_not_available in 1 minute and 14 seconds (queued for 2 seconds)