nsqd: fix cleanup of Channel.messagePump on delete

when a channel is deleted that has clients and is actively
delivering messages it is possible that messagePump()
will block on its go channel write to clientMsgChan due to
race between that write and the exiting of all clients subscribed
to that channel.

if that happens, the messagePump for the deleted channel
never exits and a reference is retained preventing the
channel from being GCd.
nsqd: discard old channel references

when the channels for a topic *shrinks* we weren't
correctly discarding the pointer to the deleted
channel
support full range of HTTP pprof profiling
Merge pull request #238 from mreiferson/debug_238

nsqd: support full range of HTTP pprof endpoints
Merge pull request #237 from mreiferson/leak_237

nsqd: memory leaks
persist nsqd metadata on topic/channel change