Add optional TCP interface

This extends statsd to support pluggable server modules on which it's able to receive metrics, using a mechanism similar to the pluggable backends.

I converted the existing UDP listener to a server module, and added a TCP server to address issue #204 

Currently only a single server module is loaded, but it would be a simple change to support multiple being loaded allowing statsd to listen over a variety of different interfaces at once.
What do you think about making this an array of objects like
```
[ 
  { server: "./servers/tcp", address: "0.0.0.0", port: 8124 },
  { server: "./servers/udp", address: "0.0.0.0", port: 8125 },
]
```
and have it work with multiple servers? This way we can slowly fade out the default `address` and `port` configuration at some point (or keep it as fallback) and make it more flexible.