move stuff to util.go
factor randomBackend out
always shuffle the backends
add New method, embed a *pointer* to an etcd client