don't require backends to have names

but still make the stats socket readable if a name exists
don't set names for dns watchers

they don't add any additional information
zookeeper: look for the backend name in the node data

this is instead of looking for it in the node name, which is properly metadata.
this allows us to always generate ephemeral sequence ids for nerve node names
and still have readable information in haproxy
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
Merge pull request #43 from airbnb/allow_master_selection

Allow master selection