Document the Membership and the Invitation class
Remove needless checks from Invitation::Find()
m_ldap: time out LDAP queries

Set LDAP_OPT_NETWORK_TIMEOUT to 0 in m_ldap to prevent the asynchronous
library calls from blocking

Fix memory leak of pending queries when m_ldap is unloaded
Update core_stats.cpp

Make this consistent with other "Permission Denied" errors.
m_passforward: Don't forward password if the connect block required a password to connect
Replace the configure templating system with something better.

A large amount of this code can be removed when buildtool is done
as we will not need to worry about the differences between BSD and
GNU Make.
Prefix all definitions in config.h to avoid potential collisions.
Switch to std::string::compare() from substr() in a couple of places
m_ssl_gnutls Don't include cap.h

The tls cap is handled by m_starttls
m_ident: Add an option to allow idents of users to still be prefixed with a '~' for connect classes which have disabled ident lookups through the <connect:useident> setting.

Fixes #683.

Some changes by @attilamolnar, original PR #684
Describe <ident:nolookupprefix>
m_ident Make use of the min parameter of ConfigTag::getInt()
m_ident Close the ident socket when the object is culled instead of using hooks
m_channames Call ValidateChans() from cull() on unload

This ensures that if ValidateChans() removes everyone from a channel the
channel is added to the cull list at the right time, that is, before the
destruction of objects begin.

The core IsChannel() is less strict than us regardless of our
configuration (for now) but nevertheless this is the correct behavior.
m_channames Remove temporary vector from ValidateChans()
Relax fd bounds checking

We can cope with fds greater than SocketEngine::GetMaxFds() since 3752b3f59d5216d7dc6221a361efc76b9ad2273d
socketengine_epoll Pass a dummy value to epoll_create() that does not depend on GetMaxFds()

From man epoll:
Since Linux 2.6.8, the size argument is unused, but must be greater than zero. (The kernel dynamically sizes the required data structures without needing this initial hint.)
Change the number reported by SocketEngine::GetMaxFds() to be informal

Do not exit if we can't determine it
m_ssl_openssl Remove unused MAX_DESCRIPTORS define
Deduplicate ParseStack::ParseFile() and ParseExec()