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
I find it a bit odd to put the `wg.Done()` here and not at the bottom of the goroutine in `Fetch()`, but I suppose it doesn't actually matter. Similarly with draining the throttle...