Avoid calling methods on NULL pointers wherever possible.•••The trick we use to allow this is undefined behaviour and is not
liked by LLVM. We should stop using it but it has the potential to
break to many things for a minor release.
Move stuff around a bit:•••- Create FileSystem class:
* Move ServerConfig::CleanFilename to FileSystem::GetFileName and rewrite.
* Move ServerConfig::ExpandPath to FileSystem.
* Move ServerConfig::FileExists to FileSystem.
* Move ServerConfig::StartsWithWindowsDriveLetter to FileSystem.
- Move FileReader to fileutils.cpp and fix documentation.
- Move UserManager::DoBackgroundUserStuff to usermanager.cpp.