server: add functional tests

Make test coverage >= 90%

#1019 
`server.Do` may stall at https://github.com/coreos/etcd/blob/master/etcdserver/server.go#L107 if we don't stop the node.