m_showwhois Update settings on rehash
Fix some Windows-related problems.

- Fix an error relating to the unavailability of std::back_inserter.
- Fix loading configuration files when using relative paths.
- Fix two methods in hashcomp being exported twice.
- Remove some unimportant error messages.
Add functor that does strict weak ordering based on national_case_insensitive_map
Change type of snomask parameter to char in ProtocolInterface::SendSNONotice()
Improve UserManager::QuitUser() and related code

- Make operreason optional; NULL means same as quitreason
- Remove User::quietquit, it is now handled internally in spanningtree
- Send snotice about quitting remote users from spanningtree
m_spanningtree Remove vector from TreeServer::QuitUsers()
Remove useless ULine() checks
Introduce Server class

- Replaces std::string server in User
- Replaces InspIRCd::ULine() and SilentULine()
Move server description field from TreeServer into Server; remove OnGetServerDescription hook
m_deaf Simplify logic
Unset all extensions and the topic when lowering TS on a channel
Automatically register and unregister mode watchers