Have pipeTo() return a promise that notifies completion of piping

Closes #236