Client connection fixes

Improved documentation
Improved testing
Immediately throws an AuthenticationException if a member rejects a client instead of retrying and ending up with an obscure message
In case of no members reachable a NoClusterFoundException is thrown.

Fixes #3769
I don't have a strong argument here but I am not sure about adding new exception. My hesitation is mostly because I want this pr to applied to maintenance branch also. If I am not missing anything, changes beside this are necessary fixes. This causes user to change his code. If you make these pr for maintenance except adding a new class, I am OK with that too .