Incorporate changes from puter:master.

Fixes #5. I didn't merge the pull request as-is because of the
whitespace changes. I also went with the more semantic `args` instead of
`opts`.