Disconnect the broker when it returns us certain errors

Specifically, in the cases that indicate it is probably unreachable or
something. Otherwise we never reconnect, even if it comes back up.

Fixes #133
Merge pull request #134 from Shopify/fix-133

Disconnect the broker when it returns us certain errors
More informative error when correlation ID doesn't match
Merge pull request #136 from Shopify/better-debug

More informative error when correlation ID doesn't match
Make the initial dial timeout configurable
Merge pull request #138 from Shopify/broker-dial-timeout

Make the initial dial timeout configurable
Configurable hard limit on the max size of requests

Also add a BackPressureThresholdBytes to the producer to make it behave better
in cases where we get too close to that limit.

See discussion on:
https://github.com/tylertreat/mq-benchmarking/pull/2
Merge pull request #137 from Shopify/producer-size-limit

hard limit on max size of any request sent by producer
Merge remote-tracking branch 'upstream/master' into FailedAndAckingChannels

Conflicts:
	producer.go
Add KError = 9

According official page, 9 is unused:
http://search.cpan.org/~sgladkov/Kafka/lib/Kafka.pm

But I met lots of "Unknown error, how did this happen? Error code = 9"
So I Found out:
http://search.cpan.org/~sgladkov/Kafka/lib/Kafka.pm

I think the official page is not up to date.
Don't fail to create the client on LeaderNotAvailable

It indicates that part of the cluster is probably down, but it shouldn't be
fatal.
Add option to refresh metadata on a timer

Default to every 10 minutes to match behaviour of jvm reference implementation.

As discussed on #144
Merge pull request #146 from Shopify/auto-refresh-metadata

Add option to refresh metadata on a timer
Merge pull request #144 from Shopify/robust-client-creation

Don't fail to create the client on LeaderNotAvailable
Update error of ReplicaNotAvailable description
Merge pull request #142 from innerr/master

Add KError = 9
Add flowdock notifications to Travis
README tweaks

Fixes #147
Merge pull request #149 from Shopify/update-readme

README tweaks
Merge remote-tracking branch 'upstream/master' into FailedAndAckingChannels