replace broker watchers with kazoo recipes.
finish using watcher recipes for brokers. fix tests.
finish adding watch recipes.

Fix some unit tests.

Also adds _partition_sets property to PartitionMap for testing.
fix TopicMapTest.
add kazoo dependency link
fix concurrency error.
Merge branch 'master' into fix_65
better name
Merge branch 'master' into fix_65

Conflicts:
	setup.py
Make sure decoding doesn't fail when payload ends in the middle of a header. [Fixes #80]
Initial offsets need to consult kafka

If a partition is set to roll over based on size or expiry, then the
initial offset of 0 for a consumer group will be wrong since it doesn't
exist. Furthermore, if a client is offline for a very long time, then
its latest offset may also no longer exist.

To fix, we check each partition to make sure that the zookeeper provided
initial offset isn't lower than kafka's current lowest offset.
Remove non-ascii character in logging
Disable _fetch logging
Turn loglevel down for some messages
Make sure there are partitions before adding a consumer. [Fixes #78 #76]
Retry when there are too many participants. Make the retrys configurable
Fixes for retry logic

* Make sure setting retries to 0 will still run
* Sleep before retrying instead of after. Otherwise the final sleep is
pointless
* Make log messages a little more helpful
Catch NoNodeException when the consumer group doesn't exist yet
Make log message a little clearer
Fix unit tests and put in a better fix for #81

* ZK tests needed to stop the client before deleting everything
  otherwise the ``_rebalance`` call from the watcher would re-create
  everything
* The fix for #81 is better off in the fetch code itself since
  an ``OffsetOutOfRange`` error can be caused by more than
  just zookeeper
* Include a unit test for the above fix
* Update the README travis-ci links