Support static nested groups in LDAP

This refers to groups that have member: <another group DN> as an attribute
- Add in a utility method in the SpringSecurityLdapTemplate to retrieve multiple attributes and their values from an LDAP record
- Make the DefaultLdapAuthoritiesPopulator more extensible
- Add an LdapAuthority object that holds the DN in addition to other group attributes
- Add a NestedLdapAuthoritiesPopulator to search statically nested groups
Not having getters breaks the ability to test the setter, unless reflection is used. One should be able to test every single piece of code. and is there a better way to validate that a setter did what you intended it to do. Making it protected would allow this. Private or remove it would make it hard. Is there a benefit from removing it or making it non extendible?