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
What happens if there are other clusters in the same area? It may be the case that It should not get authenticated by first member in the list, but it will be authenticated by one of the others. This is why we were trying all. I think we are not expecting to throw AuthenticationException exception to user, but rather log it.  But I checked the code, because of all wrapping around exceptions due to threading(Futures and etc... ) , we are not able to log Authentication exception in warning level. It is printed at finest level. This is probably why you don't see the exception in the logs.