Don't always write connect errors to stderr

Instead, create a exception which can be swallowed.
The exception's message has the stderr of the remote
process.

Fixes #40