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.
@mrtazz totally. I was deliberately trying to keep the behaviour similar by only allowing a single server, but the list approach (as with backends) should be a simple change. I like your approach with the configuration being close to the server type.

Changing the existing ```address``` and ```port``` (and ```address_ipv6``` for udp only - I glossed over that one in the PR) to only apply to vanilla default udp sounds sensible