Fix compatibility issue with output of ftp_nlist

On some servers, the output of ftp_nlist is a list of absolute paths,
while on others only the base names of files are returned. This change
normalises the output of ftp_nlist to be an array of file base names.
Remove unsetting of items in cached FTP directory listings

The unsetting of file entries in Ftp::listCache creates an inconsistency
where the first call with a path will be correct, but subsequent calls
with the same path will return false.

Since Ftp::mkdir() calls Ftp::exists() on each component of a path to
determine what directories should be created, the cache deletion behaviour
in Ftp::exists() could cause mkdir to create a directory that already
existed. This would cause an exception which would abort the deployment.