transport: Fix abort on certain configurations of native_transport_port(_ssl)
The reason was accessing the `configs` table out of index. Also,
native_transport_port-s can no longer be disabled by setting to 0,
as per the table below.
Rules for port/encryption (the same apply to shard_aware counterpart):
np := native_transport_port.is_set()
nps := native_transport_port_ssl.is_set()
ceo := ceo.at("enabled") == "true"
eq := native_transport_port_ssl() == native_transport_port()
+-----+-----+-----+-----+
| np | nps | ceo | eq |
+-----+-----+-----+-----+
| 0 | 0 | 0 | * | => listen on native_transport_port, unencrypted
| 0 | 0 | 1 | * | => listen on native_transport_port, encrypted
| 0 | 1 | 0 | * | => nonsense, don't listen
| 0 | 1 | 1 | * | => listen on native_transport_port_ssl, encrypted
| 1 | 0 | 0 | * | => listen on native_transport_port, unencrypted
| 1 | 0 | 1 | * | => listen on native_transport_port, encrypted
| 1 | 1 | 0 | * | => listen on native_transport_port, unencrypted
| 1 | 1 | 1 | 0 | => listen on native_transport_port, unencrypted + native_transport_port_ssl, encrypted
| 1 | 1 | 1 | 1 | => native_transport_port(_ssl), encrypted
+-----+-----+-----+-----+
Fixes #7783
Fixes #7866
Closes #7992