Ensuring that the first argument to ConnectionError is a string

Putting an exception (or another type) as the first argument
to an Exception is confusing and makes it so that a caller's
"e.message" returns an Exception type rather than a string.

We spent quite a long time on this bug today -- a fix would be
much appreciated. Thanks!

--Robin