Refactor out the block support from #each_brokers and bring back `timeout` for the ZkGemImpl

    [1] pry(main)> d = Hermann::Discovery::Zookeeper.new('zk0.REDACTED.com:2181')
    => #<Hermann::Discovery::Zookeeper:0x57186526
     @impl=
      #<Hermann::Discovery::Zookeeper::CuratorImpl:0x391d1e33
       @curator=
        #<Java::OrgApacheCuratorFrameworkImps::CuratorFrameworkImpl:0x5287ba5f>>,
     @zookeepers="zk0.REDACTED.com:2181">
    [2] pry(main)> d.get_brokers
    log4j:WARN No appenders could be found for logger (org.apache.curator.framework.imps.CuratorFrameworkImpl).
    log4j:WARN Please initialize the log4j system properly.
    log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
    => ["kafka0.REDACTED.com:6667",
     "kafka1.REDACTED.com:6667"]
    [3] pry(main)>

    [1] pry(main)> d = Hermann::Discovery::Zookeeper.new('zk0.REDACTED.com:2181')
    => #<Hermann::Discovery::Zookeeper:0x7b6141f0
     @impl=
      #<Hermann::Discovery::Zookeeper::ZkGemImpl:0x4fb64a52
       @zookeepers="zk0.REDACTED.com:2181">,
     @zookeepers="zk0.REDACTED.com:2181">
    [2] pry(main)> d.get_brokers
    log4j:WARN No appenders could be found for logger (org.apache.zookeeper.ZooKeeper).
    log4j:WARN Please initialize the log4j system properly.
    log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
    => ["kafka0.REDACTED.com:6667",
     "kafka1.REDACTED.com:6667"]
    [3] pry(main)>