cmd_lusers Refresh max local/global user counters after a user connects

Fixes #423 reported by @RawrDragon
cmd_lusers Use of size() instead of counting elements
cmd_lusers Be smart and know how many invisible users are there without iterating the userlist
Update Doxyfile for the latest version of Doxygen.
Merge pull request #437 from SaberUK/insp20+doxygen-update

Update Doxyfile for the latest version of Doxygen.
m_dnsbl Fix connecting users timeouting when a dnsbl result is in the dns cache

Fixes #431 reported by @killerrabbit
Stop user initialization when the user is marked as quitting after OnSetUserIP
Either store the Resolver in DNS::AddResolverClass() or delete it before returning
Fix m_dnsbl not checking cgiirc users when the cgiirc address is elined
m_connectban Switch to OnSetUserIP hook to handle cgiirc users properly, ignore e-lined users
Remove dead code from DNS
Replace Windows build system and installer with cmake
Modified m_timedbans to behave more like setting mode +b manually.
It now accepts extbans. If one enters something not an extban, or valid banmask, it'll add "!*@*", making it a nick-ban instead of borking.
m_ssl_openssl Make it clear that a CA file is not mandatory
Link win32_memory too inspircd too
m_connflood Ignore e-lined users
m_permchannels Load channels from the config only at module load time and only when there are no linked servers to avoid desync
m_spanningtree Fix incoming channel modes being lost for 0-user permanent channels on the losing side of a netmerge

This did not affect listmodes
Add support for mandatory tags in included config files

If the mandatory tag is not found in the included config, the rehash is aborted. This is especially useful for remote includes, as it allows users to have a dummy tag at the end of the included config to indicate that the config has been wholly read.
This method does not depend on exit codes so even situations where wget returns an empty or a wrong page that we would otherwise accept can be detected and an error can be generated before we assume that the contents have disappeared (and unload all modules, if the included file is supposed to contain module tags, for example).

Usage: <include ... mandatorytag="namehere"> - if the included config doesn't contain a <namehere> tag then the rehash is aborted

Fixes #30 reported by @Justasic
Fix infinite loop when all DNS request slots are in use

This is not the best way to detect this scenario, a better detection mechanism will replace this in the future