Modifications for LDAP to be more configurable.

+ Change the way LDAP groups are checked.  Previously it was searching for
  the group, then looking for the user logging in in the group record's
  "member" attribute.  Now it is searching for the user, then looking for
  the group in the user record's "memberOf" attribute (the actual name is
  configurable).
+ Add configuration items for first name, last name and email attributes.
+ Add configuration items for the format of the RDN used in the bind()
  operation, and the DN and filter used in the search() operation.  These
  configuration items can be built from other configuration items to
  reduce repetition in the configuration.
+ Did some general code cleanup.