* init etcd cclient
* add etcd
* add etcd.go
* fix compile problem
* move code to etcd.go
* add etcd_lister.go for pserver client
* add etcd_client_test.go
* merge etcd_client_test and client_test
* refine client_test.go
* refine code
* format code
* add TODO and use interface instead of struct
* fix typo of initDesiredPservers
* optimize dir structure of go/pserver/client
* add a flag to config index for pserver
* follow comment
* fix path
* optimize code
* remove err in pserver NewEtcd
* restore comment about /ps_desired
The pserver need to have server index for saving model on the
distributed file system. The server index comes from etcd if etcd is
used, or user can manually specify them. So we need
pserver.NewService() to take index as an argument. Since index could
come from etcd, it would be strange if pserver takes an index as
argument, at the same time get the index from etcd. so we will need to
decouple pserver with etcd.