discusshelp wantedtype: refactor
Description
The di (dependency injection) module we currently use is very outdated and the di setup we have is pretty hard to understand, especially for people new to the code base.
Currently all plugins though depend on it, so we need to find a backwards compatible solution or at least an interface that is as simple to use as the current one for plugin authors.