Adding macros `prog1' and `prog2' similar to cl

This is an attempt at writing cl like `prog1` and `prog2` macros
Not sure whether we want them in core, this can be discussed

`prog1` executes the body sequentially (possibly for side effects),
returning the value of the first expr
eg:

    => (prog1 (+ 2 2) (print "some side-effects"))
    "some side-effects"
     4
or something like

     => (setv a (prog1 (+ 2 2) (print "some side-effects"))
     "some side-effects"
     => a
      4

`prog2' is similiar to prog1 except that it returns the value of the
second expr