possible fix for infinite loop

@pchlupacek this doesn't quite do it, but take a look at this diff. There is still some other place where `Kill` is being ignored, and it looked like `CausedBy` had a typo, but I think this implementation of pipe is very close to correct.

This is still giving me an infinite loop on:

```Scala

scala> import Process._
import Process._

scala> import scalaz.stream2._
import scalaz.stream2._

scala> halt pipe (await1[Int].repeat)
```