fixes #3272 - allow 'admin' account to be removed and replaced
Usergroups can be linked to an LDAP auth_source. This allows usergroups
to be on sync with its equivalent LDAP usergroup.

Relation between auth_sources and usergroups

Tests, validations, and actual LDAP queries

Rake task to periodically refresh LDAP user groups

Adding LDAP users is done through User.where, not iterating through all possible users

Migration for groups/user OU, recursive usergroup search

Non recursive LDAP rake task

Check against LDAP aliases, or other empty results

Remove code from other branch

Remove Users OU because its irrelevant with Ldap_fluff

Ldap_fluff added to Gemfile

Refactor to use ldap_fluff and server type

Refresh usergroups on user login

Refresh ldap task in package

Rescue refresh usergroups errors

External LDAP usergroups

Refresh external usergroup LDAP

Wrong usergroup validation

Removed breakpoint

Fixed tests for external usergroups

refresh permission

Skip validation if non ldap usergroup

Factories for auth_source_ldap, remove anon queries

Use send for private method in test

New tests for ldap, will fail because of ldap_fluff

Min version ldapfluff

Update required ldap_fluff version

Remove anon queries

ExternalUsegroups rewrite

LDAP logic moved to ldap_fluff'

Fix tests to pass with latest refactor to ldap_fluff

It's necessary to keep an authenticated connection to query

update_usergroups is public

Rebased against latest develop