Concurrent metadata refresh

Changes broker metadata to refresh concurrently rather than sequentially. If all brokers error out the last call to `Broker.GetMetadata(...)` that returned an error is exposed and the client enters the resurrection retry loop.

This also make users of `sarama.Client` (e.g. consumer/producer) be solely responsible for disconnecting brokers who timeout or misbehave. 


Related to https://github.com/Shopify/sarama/issues/15
Did you mean for the GetMetadata call to be above the select, and then for this channel write to be a case in the select? What happens when the fanout is closed while a goroutine is waiting to write here?