Request only the LDAP attributes we need
What does this MR do?
It includes CE changes from gitlab-ce!6187 (merged) to reduce the chance of merge conflicts since lots of stuff moved around.
Fixes gitlab-ce#13821 (closed). For LDAP users, we really only ever need uid, dn, cn, and mail attributes, and in some cases, even less. For LDAP groups we need ..... This merge request strips the request down to the minimum needed by default, and allows the caller to specify more or less, if needed.
Are there points in the code the reviewer needs to double check?
Why was this MR needed?
This will improve performance especially in cases where the connection is slow between GitLab and LDAP, or when the LDAP object has lots of attributes we don't care about.