guile evaluator: use pipe instead of a string port

What was I thinking? A pipe was the right thing to use, all along.  Slower, maybe, but race-free.