More major reworking. Closer to eval.so's API.
_return defaults to 'nil', not nil; stdout doesn't lose a trailing newline anymore.
Update tests.