allow leader election by controlling backends returned

this is an alternate approach to airbnb/synapse#29 which is not tied to particular
service watchers. as long as the watcher ads a numeric ID field to each backend hash,
a leader can be elected.

if a leader cannot be elected, we fail hard by returning no backends