Balancers, take two

* Use a weighted choice algorithm for `EtcdBalancer`.
* Enable client redirects. `Worker.Hello()` returns a 302 if a peer is available, or a 429 if the cluster is full. We'll want to change this to a 503 in the future; for now, I used 429 to distinguish "cluster full" from "storage unavailable" or "invalid input."
* Bump envconf to pick up a fix for `TestConfigFile`.

@bbangert r?
These don't look balancer specific, shouldn't they go in the main etcd.go?