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?
I don't understand why this will select the appropriate one. Assume a sorted set of free connections:
[500, 200, 100, 50]
Sum is: 850. 500 slots in this space should all result in the first server being chosen. However, Search will locate the lowest index at which that function returns true, which means any number between 500-850 will return True. That is a space of 350 slots, not 500.

Am I missing something?