ldapauth: Rework required attributes code to use only one exit path.

This makes the upcoming patch to add optional virtual host support cleaner.
ldapauth: Add missing verbose logging to required attributes.
ldapauth: Allow setting virtual hosts on identification with m_ldapauth.

<ldapauth:host>, when set, will be applied to users identifying with ldapauth.
The host can also take formatters from fields set on the DN of the user.
ldapauth: fix memory leak

ldap_get_dn() results need to be freed. Use a RAII wrapper to do this.

Original code by Attila Molnar
ldapauth: RAII returned ldap message.

This ensures it is always freed, and coincidentally fixes freeing in the case of
LDAP errors.
ldapauth: register both extensions
Merge pull request #374 from rburchell/ldapauth_vhosts

Ldapauth vhosts
cmd_rehash, m_spanningtree Fix REHASH messages duplicating at each hop
Fixes #375 reported by @JDowny
Reorder local user initialization steps

OnSetUserIP hook now runs after the user has a connect class and the g/k/z lines were checked (ip only, no host at that point)
Fixes #360 reported by @JDowny
Allows #336
m_dnsbl Add usednsbl option to connect classes
Don't touch users in classes where it's off
m_cgiirc Remove dead code, warn when a <cgihost> block has an invalid type value, misc. cleanup
m_cgiirc De-duplicate code, recheck elines after ip/host changes
Fixes #350 reported by @MistrX

New functions:
- RecheckElineAndClass()
- ChangeIP() - decreases clone counts for a user, calls SetUserIP, increases clone counts after the new ip is applied
- HandleIdentOrPass() - common code extracted from CheckIdent() and CheckPass()
m_cgiirc Don't resolve IPs when <performance:nouserdns> is true
m_cgiirc Don't apply resolved host or send notifications when the user is quitting (matched a line)
m_cgiirc Fix wrong announcement when the host in WEBIRC is too long
Add a typedef for LocalUserList
Make LocalUserList an std::list
Fix the list of files to be removed by make.
Merge pull request #376 from SaberUK/insp20+fix-clean

Fix the list of files to be removed by make.
Attach to events and register services in init()