add peer store

This store is designed for node register.

It is used instead of `Peer` for etcdserver to send requests and provide machine infos.

It is necessary to have such a struct to fit: 1. dynamic change on nodes 2. save/load from log/snapshot
PeerGetter is awkward. Can we just make `PeerStore` the interface and either `peerStore` as the struct (or something different if it really needs to be exposed)?