testing.ftp: Implement path routing logic.
ftp.client: Consider empty listings as no files.
Update app_test, ftp.ls.parse_test to match test FTP server
phantomjs.py: Catch ESRCH on atexit handler
app_test.TestAppFTP: Hush the logging output