log: Refactor configuration to be more self-contained and explicit
The current configuration of our logging subsystem is a tangled mess of global initialization functions, which makes it both hard to understand and quite fragile. This merge request thus refactors the configuration code such that it becomes self-contained, where every binary is now expected to call log.Configure()
after having read the configuration. This should make it easier to understand when exactly the logging infrastructure is ready, where it logs to and what the log level and format is.