I found an confusing error related to closing FileObjs and PipeObjs.

I discovered this bug with find-regex.orange and its early closing of
stdin. That script now works.

Instead of finding out how these file descriptors are being closes, I
wrote a wrapper which simulates a file object which does not close
the file descriptor and manages the readers and writers of
PiepObjs/FileObjs.

Also, I went back and made the different pipetypes manage the readers and
writers.