Register allocation and bug fixes

I also fixed branching logic so that the simple_while.cpsl would work.

String writing stops me from testing some of the other tests like simple_if.cpsl, etc.
Use of magic numbers should be replaced with named constants.  It would also be desirable to comment on the somewhat unusual though correct range of 8-26