Ensure compatibility with async sock.bind() in node 0.10+

Per <http://nodejs.org/api/dgram.html#dgram_event_listening>: "the behavior of
dgram.Socket#bind() has changed in v0.10 and is always asynchronous now."
This means that setting the broadcast flag has to be deferred to a callback to
ensure it does not execute before the socket is bound. Setting the flag in a
'listening' event handler is compatible with both old and new versions of node.

Change-Id: I6c1928fda13110f326fb025048788033338a9167
Allow user to specify custom metric filters / preprocessors

Not all metrics that are appropriate for Graphite are also appropriate for
Ganglia. This patch adds an optional configuration option, "gangliaFilters",
that the user may set to an array of module paths. Each referenced module is
expected to export a "filter" function which takes a metric and either modifies
it in some way, returns it unmodified, or returns a false value to exclude it
from Ganglia reporting.

Change-Id: Ieca6e923b14278b243bd1ca80611f2cea7f751b3