refactor the debug hooks before they become a breaking change.

The number of call backs started at one and grew to four and managing them all separately was cumbersome.  This will bring some sanity back to the debug hook API.

I've made one to tiny change to `OnSubscribeFromIterable`. It now checks if the subscriber is unsubscribed before calling `onCompleted()`.