Default to ephemeral sockets

The use of a single, shared socket that's never closed prevents node processes from completing normally.

This change allows an optional shared socket to be passed into the constructor. If present, node-statsd will use that (and will assume that the provider will close it when appropriate).  Otherwise, node-statsd will create new sockets for each connection (the old, less efficient behavior).

@tmm1 - I was thinking about ways to default to the shared behavior, but the only way I could think of to do that cleanly involved a dynamic getter and a `setInterval` that periodically checks whether the socket has been used recently (in ms) and closes it if not (to be recreated in the getter as necessary).  I'm curious to hear your thoughts.