Add election framework to master; publish services.

Needs tests still.
Why isn't the following part of Runner's implementation:

func (r *Runner) loopUserFunc(stop chan struct{}, int idx) {
for {
  r.userProvidedFuncs[idx]()  // expected to one iteration of work and then return
  select {
  case <- stop:
    return
  case <- time.After(r.DelayBetweenIterations):
  }
}