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
As far as I see it is sufficient to change throw new RetyrableIO.... with following line
throw ExceptionUtil.rethrow(e, IOException.class);
Retyrable IO does not seem necessary and other changes you did is already  avaliable in our util class.