Handle when client.Partitions returns empty slice

This can happen as documented in #49, when all the partitions for a slice
undergo leader election simultaneously.

In this case, return LeaderNotAvailable, which is true even if we haven't chosen
a partition yet :)
Refresh metadata if all partitions are in election

Otherwise the producer gets stuck with a stale cache
Merge pull request #101 from Shopify/handle-zero-partitions

Handle when client.Partitions returns empty slice
Add producer SendMessages function