Add if/elsif/else statement

@sgnr 
Also, I realized it would be nice to have something like
```ruby
visitor do |v|
  v.on_boolean { |node| ... }
  v.on_... { |node| ... }
end
```
To define small visitors specific to parts of the AST and [avoid branching](http://youtu.be/inU7MEtI51g)!