nautilus-directory: Fix race condition in file hash table
Currently, Nautilus crashes when we in rapid fire succession, duplicate many selected files (~600+).
This is because of a hash table race condition in nautilus_directory_find_file_by_name, causing it to return NULL for a file that exists. This causes nautilus_file_get_internal to call nautilus_directory_add_file, which could fail the assertion that the file does not already exist in the hash table.
To fix this, synchronize file hash table operations with a mutex.
Closes #2469 (closed)