producer: enable retry-backoff

Wait a bit (250ms by default) for the cluster to elect a new leader before
processing message retries, since otherwise chances are we'll just get stale
metadata from the broker we ask and the client won't know enough to back off on
its own (because stale metadata won't contain any errors).

Fixes #229.
Merge pull request #231 from Shopify/producer-retry-backoff

producer: enable retry-backoff
producer: permit throttling max messages per request

Related to #233
producer: clarify documentation around Flush*
Merge pull request #235 from Shopify/max-messages-per-request

producer: permit throttling max messages per request
Rewrite consumer to support multiple partitions

- `Consumer` is now a much lighter "manager" that spawns `PartitionConsumer`s
  instead. `PartitionConsumer`s behave and have an API almost exactly like the
  old `Consumer`.
- Automatically groups and redispatches PartitionConsumers when leadership moves
  in the cluster.