etcdserver: introduce the cluster and member

This introduces two new concepts: the cluster and the member.

Members are logical etcd instances that have a name, raft ID, and a list
of peer and client addresses.

A cluster is made up of a list of members.
Merge pull request #1147 from philips/add-name

introduce cluster store
main: undeprecate peers-file for now
*: Id -> ID for protobuf types

We use ID instead of Id in this project based on golang conventions.
Merge pull request #1190 from jonboulle/undeprecate_peers_file

main: undeprecate peers-file for now
etcdserver: return client urls for /v2/machines
etcdserver: move cluster test from etcdhttp to etcdserver
etcdserver: Cluster.Endpoints() -> Cluster.PeerURLs()
pkg/types/flags: introduce flags package

I want to use the Addrs type in another experimental proxy that I am
implementing. Pull it out into a separate package.
Merge pull request #1194 from unihorn/141

etcdserver: return client urls for /v2/machines
Merge pull request #1196 from philips/add-flagtypes-package

flagtypes: introduce flagtypes package
raft: add msg denied field
raft: remove index field in msg voteResp
raft: remove index field in msg AppResp
raft: fix error msg
update the Documentation/libraries-and-tools.md
Merge pull request #1197 from coreos/raft_t

Add raft msg denied
etcdserver: add publish func
Merge pull request #1192 from unihorn/140

etcdserver: add publish func
Merge pull request #1199 from AdoHe/master

update the Documentation/libraries-and-tools.md to add a new Java client