add parsing for when
Implementation of `when'

when test: body end

==>

cond:
  | test => body
  | true => nothing
end

With an appropriate untamperable identifier for `nothing' to avoid issues with
shadowing
when nested fix/regression
Merge branch 'unstable'