Fix NodeSet.pick: use mongos node if available and avoid PrimaryUnavailableException in case of SecondaryPreferred