Another try at allowing optional iteration

I can see one argument being that, if we ever get for-in-else syntax, this will allow something that isn't really possible (at least not without duplication) now:

for? x in optSequence {
    //Do something with X
} else {
    //The loop didn't run at all
}

Without the sugar, the closest we could come is:

if let sequence = optSequence {
    for x in sequence {
        //Do something with x
    } else {
        //The loop didn't run at all
    }
} else {
    //This most likely has the exact same code as the inner else statement
}