Print a friendly error for the if-let construct without an else block

Fixes #19991.
I think a better solution would be to extend `MatchSource::IfLet` to capture that information when desugaring. `IfLet { contains_else_clause: bool }`, perhaps.