Added tests.
Remove Pipe.noEof

It was buggy and hard to use correctly, and in my own usecases it was
replaced by Source.pusher.
Add more tests.