Add C99 pretty printing for unsigned shift operators
Disable optimized pretty printing of append

This optimization contains a bug.
The result array is initialized to length l, when it should be 2*l
It is easy enough to fix by multiplying the length with 2 like this:

```
tellprog [initArray loc $ binop (Rep.NumType Unsigned S32) "*" len (litI32 2)]
```

However, in many cases the resulting length expression could be
optimized further if the calculation had been performed in the core
language instead of the imperative langauge.

It would be beneficial to do this rewrite on the core level instead.