Support different protocols

Graphite supports both tcp and udp. This pull request adds the ability to specify the protocol to connect to, so you can use any of the protocols go's net library supports.

tcp/udp make the most sense, but tcp4/udp4/tcp6/udp6 can also be helpful.