WIP: Add election framework to master; publish services.

Needs tests still.
I guess my answer--which is subject to change--is that the same config that starts the component plugin should also start a service. If everyone really loves the way I'm doing things here, though, I'll extract it into a reusable library (controller?). But I expect all the weird code to go away when we start running apiserver in a pod and can allow the normal mechanism to update its service endpoints.