m_spanningtree Throw an exception on protocol violations instead of returning CMD_INVALID

Catch CoreExceptions, log and close the link in OnDataReady()
m_spanningtree Add ServerCommand::ExtractTS() to convert string to raw TS

Throws a ProtocolException if the input is invalid
Change the OnNamesListItem() hook to return ModResult

Return MOD_RES_DENY to exclude the user from the NAMES list
Document parameters and return value for the OnNamesListItem() hook
Remove redundant IS_LOCAL() checks discovered by static asserts
Add support for generating DANE TLSA records to genssl.
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.
Rewrite m_helpop to be compatible with other server implementations.

1. We now use the same numerics as the IRCD-Hybrid family for help
   instead of incorrectly using the numerics used by UnrealIRCd.
2. The title in the first line of the old HELPOP response has been
   moved to <helpop:title> and the help message has been moved to
   <helpop:message>.
3. <helpop key="nohelp"> has been moved to <helpmsg:missingtopic>.
4. Help messages can now depend on modules being loaded. The message
   shown when a module is not loaded can be customised using
   <helpmsg:missingmodule>.