Fix module loading in PURE_STATIC builds
Remove ModuleManager::ModCount and GetCount()
Deduplicate code in modmanager_static and modmanager_dynamic
Automatically register ServiceProviders created by modules
Remove InspIRCd::HandleRehash functor

Call InspIRCd::Rehash() from cmd_rehash and from the SIGHUP handler
Hide all symbols that aren't exported explicitly

In addition to reducing the sizes of all binaries this also helps the optimizer
Change allocation of a few services to make use of auto registration
m_spanningtree Move c2s commands out of SpanningTreeCommands to auto register them
m_spanningtree Handle ERROR when fully connected
m_spanningtree Minor fixes

- Handle the case when servers SQUIT themselves
- Fix extra space in channel messages
Add a type id field to ModeHandler
Create a base class for prefix modes

Move Channel::SetPrefix() into Membership
Move prefix mode specific fields and getters into PrefixMode

Add ModeHandler::IsPrefixMode()
Convert cmd_modenotice into an optional module
m_modenotice Use WriteNotice()
Add ModeHandler::IsListModeBase() and MC_LIST
Keep lists of mode handlers by type
Send ListModeBase modes implicitly on channel sync

Remove Module::ProtoSendMode() and ListModeBase::DoSyncChannel()
Split ProtocolInterface::SendMetaData() into multiple functions
Pass an interface to the OnSync hooks

Remove Module::ProtoSendMetaData()