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
Merge branch 'master' into master+dnscrap

Conflicts:
	src/modules.cpp