Let Run() class use struct. Close STDIN by default.

This refactor gives run a better printable representation, and causes a
subprocesses STDIN to be reopened on /dev/null by default.