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.
do we need to define the value?
if not I think it would be better to leave it undefined for now. Just to keep options open to use the ufunc `where=` argument in future for some things