merge pipeTo and pipeThrough into pipe

From an spec standpoint differentiating pipeTo and pipeThrough is helpful but from a user standpoint the only diffrence is that pipeThrough is for piping to through streams and pipeTo is for piping to writable streams. 

All this pull does is create a pipe method and then creates a new pipe test which consists of the pipeTo and pipeThrough tests with all occurrences of those methods changed to pipe.

Apologies if this has already come up somewhere and I wasn't able to find it.