Add a fairly comprehensive test.

One note on the `Open3.popen() {}`, the block form waits for the command
to execute which is what we want, hence the empty block.  Maybe not the
most correct way to do this...