Make deadBrokerAddrs a map to begin with
If we think the broker is dead, check we can connect

This might help with part of #151 by triggering the WaitForElection timeout if
we're super-eager and request metadata before the cluster even realizes the
broker is gone.
Merge pull request #152 from Shopify/wait-for-dead-brokers

Wait for dead brokers
Potential new Producer design
Add a length to the Encoder and simplify messageAggregator
Simplify messageAggregator even more
Improve docs