cmd_invite Check if the inviting user is on the channel before potentially telling him the target is already on it
cmd_stats List opers without iterating the whole userlist
Make cmd_whowas act like a module, remove special handling
Move whowas settings into cmd_whowas from ConfigReader
Line ending conversion
Stop recreating hashmaps every hour, move garbage collection code related to local users to UserManager
Fixed grammar in whois output for +k'd services.
Merge pull request #465 from Shawn-Smith/master+ServicesOperGrammar

[2.2] Fixed grammar issue
Merge inspircd_{config,version}.h into a single header file.
Fix LUSERS not working in a PURE_STATIC build
Don't attempt to unload or reload modules that are waiting to be unloaded
Merge pull request #472 from SaberUK/master+merge-headers

Merge inspircd_{config,version}.h into a single header file.
Purge the 1.1 config deprecations.
Add the ability to deprecate config values as well as keys.
Merge pull request #474 from SaberUK/master+better-config-deprecation

Improve the config deprecation system.
Default to the XML config format.
Merge pull request #475 from SaberUK/master+default-to-xml-config

Default to the XML config format.
Add support for generating dhparams with GnuTLS to genssl.
Remove OnAddBan and OnDelBan hooks
Rework dynamic_reference management, introduce dynamic_reference_nocheck

New dynamic references are now resolved at construction and all of them are re-resolved when a relevant service is added or removed; resolution is no longer done in operator->

dynamic_reference_nocheck is a variant of dynamic_reference that does not check for value being null in operator-> / operator*
dynamic_reference still throws an exception when used in this case

Both kinds of dynamic references support .check(): an exception is thrown if this is called when value is null