#718: redact_text with subtractive user patterns from
[secret_detection].exclude_patterns — a match covered by any exclude
regex is kept verbatim, so known-safe naming conventions can be carved out
without disabling secret detection wholesale.
Apply caller-supplied policy redaction patterns on top of the built-in
secret rules: each regex match becomes [REDACTED:<label>]. Returns the
transformed text and the number of redactions applied (for audit counts).