Fix the TSD blacklisting logic.

Each time pick_connection() is called, we pop out a TSD from the list
of possible TSDs.  Each time blacklist(host, port) is called, we add
the TSD back to a list of blacklisted hosts.  This means that if we
don't *always* call blacklist(host, port) before disposing of the
current connection, then we will forget about that TSD forever.
Eventually tcollector will run out of TSDs to connect to, and
will exit.  We obviously don't want tcollector to exit, especially
when the machine is temporarily disconnected from the rest of the
world.

The blacklisting logic is changed here.  The list of TSDs is never
destructively changed.  Instead when a TSD is blacklisted, we add it
to a set.  We cycle through the list of hosts, checking the set each
time.  We could get away without using a set if we could guarantee
that each (host, port) could be specified twice, but we don't, and
specifying the same (host, port) more than once can be useful to do
some very rudimentary weight-based load balancing.  When we run out
of hosts to try, we clear the set and try again.

This closes #80.
procstats.py: Collect interrupt statistics from /proc/interrupts

Collect per CPU interrupts statistics from /proc/interrupts.
Metric name: proc.interrupts
Interrupt types are classified per "type" tag.

Signed-off-by: Benoit Sigoure <tsunanet@gmail.com>