Implement transports fallback

Create option try_multiple_transports (default: True)
When a transport raises a ConnectionException, fallback to next transport in the negotiated list.