v0.5.0-alpha.2

- added optional proxy fallback to discovery mode. This is enabled by default but can be configured with the `-discovery-fallback` flag.
- add further extensive Raft tests based on section 5.3 and 5.4 in the Raft paper
- new Advance interface to raft.Node to correctly notify the node when entries have been applied
- etcdctl now syncs before running member subcommands
- etcdctl now supports tls with the `--ca-file`, `--cert-file` and --key-file` flags
- etcdctl now has a backup command to save a copy of an etcd data directory
- etcd now has a `-force-new-cluster` flag to use when restoring from a backup
- expanded and clarified clustering documentation
- WAL now syncs before returning from create
- listen ports are initialized before starting the etcd server
- when adding a member to a cluster, etcd now verifies that the given peer URLs are not already assigned to a member
- exposed `discovery-proxy` flag (equivalent to the ETCD_DISCOVERY_PROXY environment variable)
- setting flags from environment variables no longer potentially causes a panic
- `EcodePrevValueRequired` is returned where appropriate
- all errors returned to clients are now JSON formatted
- all responses to clients should now have application/json Content-Type

Thank you to: Åsmund Grammeltvedt, Ben Darnell, Brandon Philips, Brian “What” Waldon, Jonathan “Bool” Boulle, Kelsey Hightower, Xiang Li, Yicheng Qin