Put bucky parent process functionality in a class
Make Client exit if None recieved through pipe
Make Bucky die gracefully

Add shutdown() method to Bucky that:
 - Calls close() on each server (sends b'EXIT' to the socket)
 - Puts a None in each client's pipe
 - Joins all servers and clients
 - If any other children remain alive, terminates them and raises
   exception.

Change SIGTERM handler to simply put a None in the queue read
by the parent process (Bucky) so that it calls its shutdown()
method and exits cleanly. No need to be putting multiple None's
in the queue, the parent process is the only one reading them.
Add basic test for bucky's killing of child procs
Catch IOError in Bucky.run (signal interrupt)
Make metricsd server kill its handler subprocesses

Also use setproctitle to set the MetricsDHandler process name.
Explicitly handle None in client pipe
Merge pull request #41 from dimrozakis/die_hard

Die gracefully