WIP: Add election framework to master; publish services.

Needs tests still.
IP address allocation can be handled by maintaining an etcd lock on a key whose name is the IP address being allocated. (exactly the same thing @brendandburns' election code does.)