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.
could you add some more documentation around what this function expects as parameters and what it returns? I'm also thinking about whether or not it makes sense to move this function into something like `servers/index.js` as it makes a little bit more sense there. `stats.js` is already so massively overloaded with spaghetti code that I think we should pull out as much as possible.