etcdhttp: set peer should clean up previous values

We have an init value for peer. When the flag.Parse is called, it will call peer.Set again. Peer.Set should be able to cleanup the previous value.
@bmizerany @jonboulle It seems reasonable to me that we return the original string passed into `Set` for `String`. Then we can print out the original string when there is an flag parsing error?