Raise ArgumentError if given non-string arguments.

The previous behavior would lead to hard-to-debug problems,
since the actuall error could happen in a forked and silenced subprocess.