One of the bugs that I left in in my dependency patch D54438 was luckily discovered thanks to @george.karpenkov commiting a patch a couple days before I attempted to commit: Namely, the rigid structure of how the user can enable/disable checkers wasn't respected, and chaos ensued when a dependency was disabled, but the checker that was depending on it was enabled.
I added a new enum to CheckerInfo, so we can easily track whether the check is explicitly enabled, explicitly disabled, or isn't specified in this regard. Checkers belonging in the latter category may be implicitly enabled through dependencies in the followup patch. I also made sure that this is done within CheckerRegisty's constructor, leading to very significant simplifications in its query-like methods.