fix almost empty attribute & fix pep8
Do nothing if the object has not been touched.
Use LDAP Password Modify Extended Operation
Merge pull request #2 from xhochy/master

some fixes from xhochy, thx!
small fixes and certificate support
setup file
more info in setup.py
nice layout for README file
Use UTF-8 in LDAP queries
Merge pull request #4 from xhochy/patch-2

Use UTF-8 in LDAP queries
Removed some trailing whitespace.
Refactored some code and added retrieve_ldap_node function.

Moved the code that loads an LdapNode's attributes lazily
out to a function to avoid it being repeated in multiple places.

This also allows us to request the attributes to be retrieved
manually, instead of having to access something to force
lazy-loading to work.

Because of all this, a convenience function was added to LdapConnection
which allows us to fetch an object (with all its attributes) from the
database or get an ldap.NO_SUCH_OBJECT exception immediately.
Refactored attributes loading code.
Raising a more descriptive AttributeError.
Added search() function (like query, but hydrates LdapNode objects).

LdapConnection.query returns low-level stuff, instead of nice
LdapNode objects. That's what LdapConnection.search does.
It takes the results from query() and wraps each item into a
ready to use LdapNode object.
Merge pull request #5 from spantaleev/usability-enhancements

Usability enhancements
use _encode_utf8 helper everywhere
retry on disconnect from ldap for set_password
add rename dn method
add docu for TLS-connections