Propagate low-level connection errors to the AMQPConnectionError.

When debugging connection failures, it's more helpful to know the exact cause than the number of connection attempts. While the information is available in the log, this is not immediately obvious. 

This is an attempt to propagate this information to the raised error. There is a backwards-incompatibility in that if someone has added a custom on_open_error_callback, the function is expected to accept an extra argument.