Fix bugs in comprehensions starting with if clauses

* `(if)+ expression` did not have a "tail", i. e., did not return if the
  condition was false
* `(if)+ (for) (if|for)* expression` wrote the "tail" before closing the
  "if"’s braces: a) double return inside the if, b) missing return
  outside the if