Piecewise fix for 0d

I provide a fix for #331. Actually little changes were needed, but I had to carefully think about the assumptions being made by the function. Some additional tests were added and the behavior remains backwards compatible.

Besides, I corrected the documentation because there was an inconsistent bit, see 0d1f7d3.
Actually I tend to use `select` myself and avoid `piecewise` because of these little annoyances. I can quickly try it or leave it for the next version.