Make -if-let and -when-let families destructure their arguments

This might not be used a lot, but I think it makes things a bit more consistent.

It succeeds if all destructured values are non-nil.

Ideally `-if-let` would have one vector form and one form accepting vars-vals, mimicking `-let`, and we could get rid of `-if-let*`. But it's a bit late for that now. :)