WIP: Add a utility for doing master election via etcd.

Sending this for comment, will work on unit tests once people are happy with the code.
Begin()? It's disambiguated by the interface name. Or BeginElecting()?