lintian-brush: Split detection from fixers

Currently, lintian-brush fixers combine both detection (finding issues) and fixing (resolving them) in a single pass. This project aims to split these concerns: detectors would yield issues, each with zero or more associated actions that can resolve the issue. This architecture is essential for building Language Server Protocol (LSP) support, where issues need to be detected and presented to users with quick-fix actions they can choose from.