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.
Changed to Elect(), its not necessarily "Begin" since different electors could enter the election at different times...