shell: implement 'while/until' processing.

The following now works:

  $ ./sh_c 'A=1 ; while test $A -lt 5  ; do echo A=$A ; A=$((A+1)) ; done'
  A=1
  A=2
  A=3
  A=4