Propagate OpenSsl errors.

We lift OpenSsl errors to IoErrors, conditionally losing some information.

Without a better error abstraction, this is the best we can do without
specializing Connecter to OpenSsl.
Would lose less information (and help debugging) if this was `Some(format!("{}", errs))` where `errs` is the vector from `OpenSslErrors`.