Allow multiple samples to be sent.

There's a loop through all the items, and a `return True` in the loop. I
think what was meant here was to `return True` after *all* items are
sent rather than only after the first item is sent.
Call `connect()` on a connection's socket.

If one passes a hostname into `sendto`, there is a DNS lookup that
happens every time data is sent.  Switching to calling `connect`
initially and then calling `send` afterwards causes only one DNS lookup
to happen initially.

`send` can throw a `socket.error` exception if after the first send it
receives an ICMP Port Unreachable since the destination host/port
doesn't exist or isn't listening.  This is caught and logged by the
existing `except Exception, e` in the code, and then we will
`return False` to indicate failure and continue on.
Un-break doctests in counter.py.

These test broke as we're now reporting back if packets are making it to
the destination.  These tests are a bit suspicious to begin with, as
they're actually sending data out on the wire every time you run them,
which isn't quite what unittests should be doing.

The fix implemented here uses nose's ability to run module-level
setup/teardown functions to be able to mock out `Connection.send()`.
Merge pull request #21 from thisismiller/outgoing

Allow sending multiple stats + minimize DNS lookups