make lookup functionality pluggable

We'd like to be able to override how a consumer queries from NSQLookupds.
I think this approach would also allow others to switch NSQLookupd for etcd, zookeeper,
etc.

This is still a WIP but I hope you can see where I'm going with this.
Suggestions and Criticism welcome.

cc @oliver-bitly @jehiah @mreiferson
no matter where we end up, I think this should be called `BehaviorDelegate` (I think the use of the word `Consumer` is redundant here) and I think it needs `Delegate` because a) we've used it elsewhere and b) you're not setting the behavior here you're setting the thing that modifies the behavior :grin: