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
Given that we only connect to one seed broker at a time, this isn't necessarily appropriate now. Consider the case when constructing a new client and passing three broker addresses:
- brokers array is empty, so we try the first seed broker
- first seed broker fails
- we hit this case and immediately resurrect dead brokers, causing us to retry the first seed broker again rather than moving on to the second seed broker