Explicitly shut down TCP threadpools.
Shut down UDP worker pool at server stop.
Refactor riemann.transport to make pipeline composition simpler.

PipelinesFactories are now fixed at compile time, and can share the same
decoders and handlers between many connections, which should improve
threadpool efficiency and cut down on object churn. I've untangled the
various layers of pipeline factory construction and moved them all into
a new macro (channel-pipeline-factory), called from the UDP, TCP, and
Graphite servers.