Generate slightly better unoptimized code for for-loops

The discriminant for Option values is either 0 or 1, so we can just
truncate the value to an i1, which ends up as a no-op for Options
containing pointers.
auto merge of #16517 : dotdash/rust/for_trunc, r=pcwalton

The discriminant for Option values is either 0 or 1, so we can just
truncate the value to an i1, which ends up as a no-op for Options
containing pointers.