Fix Piecewise() ccode bugs

TODO:

* [ ] remove the `piecewise_fold`, so that the generated code looks as much like the input expression as possible. If you want to generate code that's folded, you can call `piecewise_fold` manually yourself. 

* [ ] raise an exception if the "otherwise" condition in `Piecewise()` is missing.

* [ ] check and test that proper output is produced for `Piecewise()` for more than 2 conditions

* [ ] check and test expressions with two ore more `Piecewise()` with the same and different conditions