ConnectionId now has-a ServerId, which in turn has-a ClusterId.

Updated all the listener interfaces to take parameters of type ConnectionId, ServerId, or ClusterId, as appropriate

  JAVA-1512, JAVA-1513
This was discussed at length in the .NET implementation.  The reason for equals to not include serverValue is so that users can correlate the ConnectionId before it has a server value with one after it discovers its value.  In practice, the driver won't ever create a ConnectionId with the same localValue but different server value as another ConnectionId.