WIP: Add election framework to master; publish services.

Needs tests still.
How does another process (like a component plugin) emulate this behavior?  I'd like to discuss the direction for this because we are very dependent on being able to work well with this and the transition plan worries me a bit