Allow optional unwrapping in where clause

And could the expression to the right of the in do some pattern matching too, solving SE-0231 Optional Iteration? And if so, can it be done in a general way that is consistent with other pattern related stuff in the language? I started a thread to discuss whether Swift's patterns could be more uniform here.