AST: Mostly implement given/when

"Mostly" referring to that "$x++ when 2" will emit a very weird construct
that makes the $x++ become an Empty block in the AST.