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.
A crash here means the whole process goes down, is that what you want?