Fix connecting to Praefect service from Ruby sidecar
When an RPC call's metadata contains Praefect server metadata, then this metadata may not be used to connect to Praefect immediately. Most importantly, it may contain an address that we cannot use in the current context to reach back out to Praefect, e.g. as it may contain the wildcard address "0.0.0.0". As such, we usually resolve Praefect server information before actually using it by using the current context's peer information, which contains information about how the peer connected to us. Thus, by replacing the passed Praefect server address with the actual one we should now be able to reach out to it.
While we do the above for "normal" code, we don't currently do so when proxying RPC calls to the Ruby sidecar: we'll just pass on metadata as-is. As the Ruby sidecar now has Gitaly as its peer and not Praefect, it's impossible to resolve the address at that point in time.
Fix the issue by resolving in the proxying code directly such that the Ruby sidecar will receive correct information and won't have to resolve itself. Add a test to verify we can connect to catch-all TCP addresses and others.
Fixes #3017 (closed)