Move host cycle logic into m_hostcycle
Accept std::string as parameter in User::ChangeHost(), ChangeIdent() and ChangeName()

Pass the string itself to IsIdent() instead of string.c_str()
Remove virtual User::GetClass() (but keep LocalUser::GetClass())
Rename <connect:nouserdns> to <connect:resolvehostnames>.

This name is more descriptive and avoids a double negative which
could make the name of this setting unclear to non-native speakers.
Use an example server name if <server:name> is not defined.
Warn if the server has no <bind> blocks.
Change the default for <security:customversion> to an empty string.

RFC 1459 says this field is for comments about the version. If the
operator has no comments then we should not show any.
Prevent servers from ulining themselves.

Almost every single case I have seen where this has been done has
been an accident.
Replace range() with min and max arguments on getInt().
Rename <options:moronbanner> to <options:xlinemessage>.

This name is more descriptive of what is actually is used for.
Require privs given on initial join to be in <options:defaultmodes>.
Add <path> keys for all of the compile-time paths.

Also, make all paths in the config relative to their associated
directory. This reverts a change in 2.0 which turned out to be a
terrible idea, especially for system-wide installations.
Merge pull request #591 from SaberUK/master+config-tweaks

Various patches relating to configuration.
Clean up wildcard code.

- Move references and pointers next to the type.
- Rename match_internal to MatchInternal.
- Remove duplicate NULL check on map in MatchCIDR.
Merge pull request #607 from SaberUK/master+match

Clean up wildcard code.
Add ConfigTag::getDuration() with optional bounds checking
cmd_whowas Major cleanup, fix inefficiencies
Clean up a few constructors

Do not silently correct a zero TS in Channel::Channel(); require callers to supply a valid TS instead
Store oper types and opers in separate containers
Remove $ModDep comments