[#3615237]Add workaround against invalid smb:// gvfs URI returned.

After we use g_file_get_child_for_display_name() on some smb:// folder
it returns GFile which have URI containing "._" and that URI cannot be
resolved later. Therefore the fm_path_for_display_name() needs another
way to resolve it - now we iterate FmPath and trying to find display
name already cached, and use g_file_get_child_for_display_name() only
if it wasn't found, and recreate child not from URI but using basename
instead. That may be sometimes longer than using that GIO API each time
but it may be sometimes faster as well.