m_spanningtree Extract logic that finds the source user for an incoming command into a function
core_whowas Don't display used bytes in /STATS z

Calculating this is tricky and the calculation was not realistic
Split intrusive list implementation into a separate file
Make the name of intrusive list class configurable using a define
Add intrusive_list_tail container that maintains a pointer to the last element
core_whowas Create class WhoWas::Nick, store pointers to those in the map
core_whowas Delete elements of the per nick deque in the destructor of WhoWas::Nick
core_whowas Store time added in WhoWas::Nick
core_whowas Store the nickname in WhoWas::Nick
core_whowas Change the FIFO to be an intrusive list
core_whowas Switch from map to a hash map and from irc::string to std::string
core_whowas Rename misleading variables and typedefs
core_whowas Clean up GetStats()
core_whowas Split database logic into a WhoWas::Manager class
core_whowas Return a WhoWas::Manager::Stats struct from GetStats() instead of a string
core_whowas Rename and move WhoWasGroup to WhoWas::Entry
Move the definition of Timer::Timer() into the source file from the header

Use initialization list
Remove current time parameter of the Timer constructor
Move the TimerMap typedef into the private part of TimerManager
core_dns Change source of log messages to MODNAME, remove "Resolver: " from all messages