nsqd: ensure all Notify() goroutines have completed prior to shutdown

This should fix #491 ... I have been unable to reproduce the fairly regular panics since adding this fix.  Note that I had to register the channel/topic notifications with the root nsqd waitGroup - while the channels and topics have their own waitGroups, those are waited on during their exit() methods.  Since nsqd's Exit() method owns the nsqd Lock when it closes the topics, those topics deadlock if they had to wait on any pending Notify().

Ready for review.