Harn's lint crate. The public surface is intentionally narrow: a
handful of lint_* entry points, the diagnostic and options types,
and a couple of small utility functions reused by other crates. All
walk state, rule dispatch, and source-aware rule implementations
live in sibling modules.