* bzrlib/transport/ftp/__init__.py: (FtpTransport._setmode): Report mode bits in octal.
* bzrlib/transport/__init__.py: Don't register GSSAPI ftp transports if kerberos can't be imported, this avoids useless repeated messages in log as the import repeatedly fail.
* bzrlib/tests/test_transport_implementations.py: (TransportTests.test_has): Fix too long lines. (TransportTests.test_connect_twice_is_same_content): Fig bogus test. transport.base is *not* usable, it miss the password for authenticated urls. This was passing only because no test server use authentication by default *except* medusa for which we had a dummy authorizer with no password check.
* bzrlib/tests/ftp_server/pyftpdlib_based.py: First shot at an ftp test server running is a separate thread.
* bzrlib/tests/ftp_server/__init__.py: Add support for pyftpdlib based ftp test server. (_FTPServerFeature._probe): One of medusa or pyftpdlib is needed.