Closes #6476
Adds -outboundbind=<addr> to control the source IP of outgoing connections.
One non-local address per family (IPv4/IPv6) is used; first wins.
-bind is unchanged: it still controls only the listening socket. Without
-outboundbind, outgoing connections follow the OS routing table as before,
so existing setups using -bind with LAN/bridge peers keep working.
Only clearnet (IPv4/IPv6) direct connections are bound. Proxied (Tor, I2P, SOCKS5) and CJDNS connections are unaffected. Local addresses (loopback, unspecified) are skipped.
Each -outboundbind address is validated at startup (trial bind()),
matching -bind's behavior via BindListenPort. Misconfigured addresses
cause init to fail with a clear error instead of silently degrading outbound.
A functional test verifies the source IP seen by the receiving node matches
the -outboundbind address, and that an address not assigned
to a local interface is rejected at startup.
Based on vasild's approach in #6476 (comment).