Added deleteFileOrDir() operation

Some storages need to use different calls for deleting files or folders,
usually unlink() and rmdir().

For this, added a new operation deleteFileOrDir() which default
implementation will first detect whether the given argument is a file or
a directory to decide which operation to use.

Some storage implementations don't need to distinguish them, in which
case they reimplement deleteFileOrDir() to save the extra is_dir()
detection.

Fixes #4532 (SMB dir deletion)
Fixes #5941 (FTP dir deletion)
Fixed SMB opendir with some files

Some files appear with a "N" in the file listing from smbclient.
Fixed smb4php to also correctly parse those.