Improve LDAP User Authentication Support

LDAP servers often have their users grouped into nested hierarchies,
usually consisting of Organizational Units (OU). This commit extends the
LDAP support so that it can locate the correct user in a server with a
nested hierarchy.

Different LDAP server schemas often use a different attribute for the
username. For example, Microsoft Active Directory commonly uses the
"sAMAccountName" as a username, while many other LDAP servers commonly
use the "uid" attribute as a username. This commit extends the LDAP
support so that the user can choose which attribute to use in the
configuration file, using the "user_attr" configuration setting.

With both of these changes in place, it now makes sense to merge the
configuration settings "bind_user" and "bind_dn" together into the
single configuration setting "bind_dn". The configuration settings now
match my expectations as an experienced LDAP administrator.

The configuration template has been updated to match these changes. In
addition, the LDAP section in the configuration template has improved
comments to explain the meaning of each setting.
9 jobs from improve-ldap-support in 17 minutes and 59 seconds (queued for 1 minute and 50 seconds)
latest
Status Job ID Name Coverage
  Sqlite
passed #126032
sqlite1

00:03:44

passed #126033
sqlite2

00:03:41

passed #126034
sqlite3

00:04:13

 
  Postgresql
passed #126035
postgresql1

00:04:11

passed #126036
postgresql2

00:04:18

passed #126037
postgresql3

00:01:30

 
  Mysql
passed #126038
mysql1

00:01:25

passed #126039
mysql2

00:04:02

passed #126040
mysql3

00:04:14