pipe: implementation #3; this time for sure! Added goroutine; got simpler. Fixes deadlock when doing Read+Close or Write+Close on same end. R=r, cw CC=golang-dev https://golang.org/cl/994043