Generate message for all possible ConnectionError

Unrecoverable exceptions generate an `ActiveMerchant::ConnectionError` along with a helpful error message, as defined by the `DEFAULT_CONNECTION_ERRORS` constant.

However, there are a few exceptions that would be rescued by the code but would not generate an exception message, because these exceptions are _subclasses_ of those defined in the constant:

```rb
require 'active_utils'
require 'net/http'
require 'net/https'

class Class
  def descendants
    ObjectSpace.each_object(::Class).select {|klass| klass < self }
  end
end

Timeout::Error.descendants
# => [Net::ReadTimeout, Net::OpenTimeout]

OpenSSL::SSL::SSLError.descendants
# => [OpenSSL::SSL::SSLErrorWaitWritable, OpenSSL::SSL::SSLErrorWaitReadable]
```

This adds the ability to look for the appropriate error message in the `DEFAULT_CONNECTION_ERRORS` constant via the exception that occurred *or* its ancestors.  This way, a message should always be returned, and we will be able to disambiguate a `Net::ReadTimeout` from a `OpenSSL::SSL::SSLErrorWaitReadable` from outside ActiveMerchant by observing the ConnectionError message.