Override CSFTPDirectory::Exists() method to correctly report whether an SFTP url represents a directory or not.
Fixes ticket #13784.

Refactored CSFTPSession::Exists() into FileExists() and DirectoryExists() methods, and have CSFTPFile and CSFTPDirectory classes use them.
This means that Exists() calls on these classes correctly only return true if the url refers to an item of the appropriate type (e.g. a file or a directory).