etcdserver/etcdhttp: split out peers and add tests

Any preferred means to test this kind of thing? Ideally to me IDs should return a set not a slice.