Don't request a PTY if we don't have a password for sudo

When requesting a PTY, stdout and stderr are mixed in a single flow. The
PTY is useless if we don't have a password to provide to
sudo. Therefore, just don't request one without a password. Also, catch
the error sudo emits when it complains it needs a password but doesn't
have a terminal for it. This error is emitted on stderr when we don't
have a PTY.

This should fix https://github.com/serverspec/serverspec/issues/373