Set mtime on transferred files after upload or download

Net::SFTP doesn't automatically set mtime to match the source on upload
or download. Switch to manually recursing over all files and folders and
setting file details at the end of the transfer. Currently has to run a
hacky separate thread to update local timestamps as Net::SFTP calls the
on_close event before closing file handles so the operating system rejects
the File.utime call.