Proxies on a TCP port are accessible outside the current security
context (eg: uid). Add support for having the proxy listen on a
unix socket, which has permissions applied to it.
We make sure the socket starts its life only accessible by the
current user using Umask.
This is useful for applications like Cockpit and other tools which
want the help of kubectl to handle authentication, configuration and
transport security, but also want to not make that accessible to
all users on a multi-user system.
In the proxy filter, if listening on port 80 or 443 there will
be no port present in the Host: HTTP header. Just use the entire
thing in these cases, and don't reject requests when no port
is present in the Host: HTTP header.