Test on both 7.4.2 and 7.6.3
Removed bounds on syntactic, since the version is anyway determined by feldspar-language
Fix syntax error in the cabal file
Add support for the RealFloat class
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.