Fix doNext and added doCompleted

Hey there.

This "fixes" `doNext` so that it only fires on actual values and not `Nothing`s. Also adds `doCompleted`.

But that choice to make `doNext` behave that way may have been intentional. I'm not sure.