Fix ftp transport so that it handles the 'mode' parameter when provided.
* ftp.py: (FtpTransport.put_file, FtpTransport.mkdir, FtpTransport._try_append): Use _setmode. (FtpTransport._setmode): Fix implementation (parameters were reversed and mode not converted).
* ftp_server.py: (test_filesystem): New filesystem implementing chmod. (test_authorizer.authorize): Use our filesystem when authorized. (ftp_channel.cmd_site): Implement SITE CHOWN.