First try to get the new leader for a consumer

It could be that a broker has been refreshed while the consumer still
has the old broker, so first try to get the leader before refreshing
metadata
Cast refresh interval to time.Duration before using
Fix tests to correctly test the new behavior

Not sure what to do with TestClientRefreshBehaviour yet, it expects a
metadata query to go to all known brokers
Refine consumer reconnection behavior

We need to differentiate between a failed connection and a connection
that was closed by someone else using the same client, otherwise it
would get stuck in an infinite loop on a failed connection
Revise refreshMetadata

Also retry if it can't connect to any of the seed brokers
For now the delay for retrying seedbrokers is just 'WaitForElection'