Simple script to capture collectd packets

I needed packet data to test the collectd daemon and I didn't want to
bother writing a generator.
Some initial work on testing CollectD
Include plugin instance as a path component
Log the last sample on error
Bump version for release
Fix log message
Version bump for new package
Log levels as string does not work on Python 2.6.x

I thought that was new. Turns out it just disables logging if you use a
string as well so that was lovely to figure out.
Version bump
Fix config options override with commandline
Fix logging, again
Fixed ability to disable components through config

Previously only possible via command line flags.
Fix carbon implicit reconnection limit

Small bug if 0 was specified it would fail to connect to Carbon instead
of trying until approximately infinity.
Fix rounding due to integer division in collectd
Remove debug print
Include the stats_counts metric

This is standard in statsd but was missing in Bucky.
Skip empty timers in statsd

If a timer didn't have any values reported in a given time duration it
would cause the calculations to fail. This just skips these entries and
reports no values for that time period.
Support gauges in statsd
Fix the statsd tests
Defer joining hostname and statname and allow custom clients.

Not all potential clients need hostnames and metric names joined together, so
we defer calling names.statname() until just before shipping data to Carbon.
Messages in the queue are now 4-tuples.

Also added a simple hook for custom clients. A client must respond to init/1
and send/4. They're not run in separate threads, so some care should be taken
to not hog interpreter time.

Updated tests to pass with the new message format.