pluggable "behavior delegate", currently just for DiscoveryFilter

for modifying nsq consumer behavior at some defined points
panic()s if the behavior delegate casts to no known interfaces

currently just supports DiscoveryFilter (with a Filter() method),
to filter the nsqd addresses resulting from discovery (via nsqlookupd)