Define a NSLCD_ACTION_USERMOD request

The modification can either be requested by root or by the user itself.

Modifications by the user should be done by connecting to the LDAP server with
the user-supplied credentials. It is expected that access controls in the LDAP
server prevent unwanted modifications. The nslcd process is expected to check
whether supplied values are sensible.
Handle user modification requests in nslcd

This is currently limited to supporting modification of the homeDirectory and
loginShell attributes.

Modifications as root currently use the rootpwmoddn and rootpwmodpw options.
Handle user modification requests in pynslcd

Similar to the nslcd implementation, this currently only covers modifying the
homeDirectory and loginShell attributes.
Initial version of a chsh.ldap utility
Implement used modification functionality

This adds user information modification functionality to nslcd and pynslcd and
implements a chsh.ldap utility that can be used to change the login shell of a
user (similar to the normal chsh command).

The user modification functionality should allow for generic modifications of
user information. More utility commands to perform modifications remain to be
implemented.