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
Allow dynamic references to reference ServiceProviders, introduce ModeReference

Mode handlers can be referenced using mode/<modename>
Unite include/modes/*.h into include/builtinmodes.h
Add builtin modes using AddService()
Migrate u_listmode.h into the core, change +b to use it
ListModeBase: Minor changes to original u_listmode code

- Add constructors to ListItem, ListLimit
- Rename fields in ListItem
- Store time as time_t instead of string
- Store limits in a vector instead of a list
- Don't deallocate the list when it becomes empty
ListModeBase: Cache max items per channel
XLine: Provide a default implementation for DisplayExpiry()
Move most whois related code from the core into cmd_whois
Fix ListModeBase on Windows
Update Window's .gitignore
Replace IS_AWAY() and IS_OPER() macros with User::IsAway() and User::IsOper()
BanCache: Don't repeat ourselves, one BanCacheManager::AddHit() and one BanCacheHit constructor is enough
BanCache: Do one hash lookup in BanCacheManager::AddHit()
BanCache: Remove BanCacheHit::IP field, and BanCacheManager::RemoveHit()

The IP field was only used in RemoveHit(), RemoveHit() was only called from GetHit()
BanCache: Simplify BanCacheManager::RemoveEntries()
BanCache: Remove BanCacheManager::RehashCache()

The function was never called
BanCache: Move expiration code into a function, call it from RemoveEntries()
Run OnUnloadModule hook before starting to unregister services provided by the module
Fix clang warning about IsOper()