Modify NODE_IF handling.

`unless` without `else` sometimes causes strange result.

When `unless` is used without `else`, `tree->cdr->car` of `NODE_IF` is `NULL` in codegen function.
In this case, `pop()` should not be called because `codegen` generates no code.

This is a sample to reproduce this issue.

```ruby
def test(&block)
  buf = nil
  block.call(buf) unless (false)
end

test do |i|
  p i  # nil is expected.
end
```

Without this patch, the above code outputs as follows:

```
#<Proc:0xXXXXXXX>
```