TODO
----

0.3

- change implementation to use zope3 components (implement connection as an
  utility/service and define interfaces);

0.2

- support other authentication methods;

- exception handling (LDAP exceptions: timeout, server down, invalid
  credentials, no such object); 

- improve zmi interface;

- test with other LDAP servers: Fedora Directory Server, AD, etc;

- internal cache system?

- make transactional behaviour optional;

- use some kind of fake LDAP server (as LDAPUserFolder) for unit tests.

DONE
----

- set connection timeout;

- support other scopes;

- define operation (add, search, delete, etc) timeouts;

- support read-only mode;

- support rename operation;

- implement transaction support;

- handle encoding of dn;
