Connection: Added support for failover

If multiple host-names (space separated) are passed in to the
configuration, then attempt to try them in order until one works
(success) or all fail (raise error).

The ports can similarly be passed in as a space delimited list as
well.

This is obviously a first draft and I'd like some feedback on this.  I would have added logging (since it can be useful) but didn't see how that worked in the `Connection` object.

Changes should also be made to the documentation to reflect this failover capability.