ad_mu process members in chunks
ad_mu process members in chunks

- updating members in ordinary groups and groups for additional licenses was reworked.
  Now it uses subroutine update_group_membership which handles categorizing members,
  calling new add and remove subtroutines and updating counters.
- subroutines add_members_to_entry and remove_members_from_entry just
  performe these operations in chunks of max 4999 members, logs results
  for each chunk and return 0 if there was no error and 1 if at least one
  chunk could not been updated.
- updating members in main licence groups had to be rewritten
  differently. It is because for the all main licence groups need to be
  firstly performed adding operation and after that can be performed removing operation.
  It is because these groups are hooked to some external process in AD
  which can be run in the middle of the update.
- In order to keep this behaviour, updating main licence groups is using
  the same add and remove subroutins as before, but these subroutins were changed.
  They now use subroutins which works with chunks. They then return messages
  based on the result of the chunk subrtoutins. "unchanged" means that nothing changed.
  "errors" mean that update process was called but there was some errors.
  "changed" means that update was performed without any problems.
  According to these messages are updated counters.
- All these changes were made because LDAP could not perform update with
  more than 5000 changes.

zlamalp/perun-services,zlamalp/perun-services,zlamalp/perun-services,CESNET/perun-services,CESNET/perun-services,CESNET/perun-services,zlamalp/perun-services,CESNET/perun-services