Build basic blocks for loops in a more conventional manner

Elliot and I have noted that Basic Block construction for loops generates blocks and links between
blocks in an unconventional way.  I did not want to replicate this for WhileDo loop but we were unsure
if there was "a reason" for the current form.

In this submit I
  (a) do some simple syntax cleanup
  (b) convert to the more standard organization


Compiled
  (a) Clang on mac (in a different branch)
  (b) GNU STD on linux

Tested on full regression suite with --verify