[CLIENT] Unknown node version should be a lower bound

Today when we start a `TransportClient` we use the given transport
addresses and create a `DiscoveryNode` from it without knowing the
actual nodes version. We just use the `Version.CURRENT` which is an
upper bound. Yet, the other node might be a version less than the
currently running and serialisation of the nodes info might break. We
should rather use a lower bound here which is the version of the first
release with the same major version as `Version.CURRENT` since this is
what we officially support.

This commit moves to use the minimum major version or an RC / Snapshot
if the current version is a snapshot.

Closes #6894
I think I'd prefer to check `listedNodes()` instead of `filteredNodes()`, which wouldn't be empty if the transport client used the right cluster name (`foobar`). Otherwise it feels like we are testing two things at the same time (filtering out the nodes and updating the version)...