vfs: don't accidentally dereference freed pointers in MemoryMapManager::unmap, and resolve a double free caused by cloning a memory mapped file