Change allocation of InspIRCd::stats to be physically part of the object containing it

While at it, remove "stats" from all field names
Change allocation of InspIRCd::Threads to be physically part of the object containing it
Change allocation of BanCacheManager::BanHash to be physically part of the object containing it
Move BanCacheHash typedef into the private part of BanCacheManager
Move the definition of the BanCacheHit constructor into the source file from the header
Pull in bancache.h from inspircd.h
Change allocation of InspIRCd::BanCache to be physically part of the object containing it
Use CommandParser::GetHandler() in ServerConfig::ApplyDisabledCommands()
Add CommandParser::GetCommands() and typedef CommandMap and use it instead of directly accessing cmdlist
Make CommandParser::cmdlist private
Remove global Commandtable typedef
Change allocation of InspIRCd::Parser to be physically part of the object containing it
m_spanningtree Change allocation of the specialized ProtocolInterface to be physically part of ModuleSpanningTree
Make the default ProtocolInterface instance part of class InspIRCd

The protocol module no longer has to delete it on load and construct it on
unload, only assign a new value to ServerInstance->PI
m_spanningtree Initialize TreeServer::UserCount for TreeRoot in its constructor
m_spanningtree Initialize boolean member variables in the constructor of the module