Refactor proxy-enabled payload handling

This fixes a couple bugs and generally cleans up the proxy option parsing code. 
I don't see this getting wrapped in `[]` for IPv6. Another argument for having a `proxy_host` method that does it automatically.