Use pyftpdlib 1.2.0+

- deals with several incompatible API changes and deprecated namespaces (after 0.7.0)
- changes to work with  pyftpdlib full unicode support
sendfile(2) won't work because we can't offer a real file interface to the object
updated pyftpdlib requirement
Use pyftpdlib MultiprocessFTPServer instead of our pre-fork model

- 'workers' configuration token is now deprecated (it has no effect)
- external shared cache is highly recommended (use it!)
- we don't need the gc to collect defunct processes

TODO: review the use of the shared memory manager as it might not be
      necessary thanks to pyftpdlib!
deprecated token (not used anymore)
DummyAuthorizer.validate_authentication() changed

It is no longer expected to return a bool. Instead it is supposed to
raise AuthenticationFailed(msg) in case of failed authentication and
return None otherwise.
misc changes
python-daemon minimal required version to 1.5.5
Unicode fixes

- proper unicode encoding of listdir_with_stat output from cache
- remove unnecessary unicode call
Merge branch 'pyftpdlib-1.2'
use pyftpdlib logging and let it deal with unicode issues
Fixed broken tests

Tests were broken in aa202fa8e89910decf80eed050caf1ba373d9662 and in consequence
the unicode support testing was wrong.

fs input is expected to be unicode, ftp tests were correct.
Unicode fixes

- error translation may include unicode
- unicode support for keys in shared cache
- cache search is always string based
- fix for list dir and list dir with stats
Merge branch 'pyftpdlib-1.2'
Use strings for the shared cache key

This is to make things easier for consumers of the fs module (ie.
sftpcloudfs).
ready for release 0.21