Replace pipeWrap with pipePromiseWraps. Promises for many ops.

This change manages to convert many of the PipelineWrapper methods
to work with either callback or promise API, by simply replacing
one utility function pipeWrap() with a slightly more complex
function pipePromiseWrap.