Fix several mistakes around free variables in iface breakpoints
Fixes #23612 (closed) , #23607 (closed), #23998 (closed) and #23666 (closed).
The fingerprinting logic in Iface.Recomp failed lookups when processing decls containing breakpoints for two reasons:
-
IfaceBreakpoint
created binders for free variables instead of expressions - When collecting free names for the dependency analysis for fingerprinting, breakpoint FVs were skipped