Move the `zk` gem from a explicit gem dependency to an implicit dependency

This will give us some optionality on how we want to reach out and contact
Zookeeper across multiple environments. See #75
Add suppot for optionally using Curator if it's on the classpath for broker discovery

This change makes the loading of the 'zk' gem optional and implicit, as well as
the reliance on Curator being available in the JRuby runtime's classpath.

If neither Zookeeper client implementation are available, an exception will be
raised when attmepting to use Zookeeper-based discovery

Fixes #75
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)>
Merge pull request #76 from rtyler/issues/75-native-zookeeper

Implement a Java-native Zookeeper interface with Curator