Fix invalid memory access after cache reload.

Referenced MenuCacheItem after MenuCache was invalidated still has a pointer
to data within MenuCache (file_dir). That data should be not static array
but floating referenced one so it will be freed on freeing MenuCacheItems.