Implement `if let`

Implement the new desugaring `if let` syntax.

Fixes #16779.
replace 'desugaring syntax' with 'feature' or 'statement' - the fact that it is implemented with desugaring is not relevant to the user