etchttp: return 410 gone for permanently removed members
Merge pull request #1531 from jonboulle/410_gone

return 410 Gone for member that has been removed in /v2/members -XDELETE
error: use application/json as the content-type

Fixes #1584
Merge pull request #1591 from philips/application-json-errors

error: use application/json as the content-type
client: return ErrNoEndpoint when none available

In certain cases (for example, if a cluster peer is accessible but it
has no members listed), the httpClusterClient could have an empty set of
endpoints as a result of the Sync. This means that its Do function could
potentially return a nil response and nil error, with catastrophic
consequences for callers.

To be safe (particularly about this latter behaviour), this change
errors in both Sync and Do if no endpoints are available.
integration: bump timeout for good path

When waiting for a watch result, we expect the good path to complete
quickly here so we don't need to time out so aggressively. (Failure
noted in #1600)
etcdhttp: fix typo in test comment
Merge pull request #1603 from jonboulle/typo

etcdhttp: fix typo in test comment
*: support discovery fallback
Merge pull request #1601 from jonboulle/client

client: return ErrNoEndpoint when none available
etcdserver: log adding and removing nodes
Merge pull request #1581 from jonboulle/log_changes

No logs when members added/removed from cluster
discovery: consolidate proxyDiscover and Discover interface
Merge pull request #1604 from xiangli-cmu/fallback_proxy

*: support discovery fallback
Merge pull request #1602 from jonboulle/bump_timeout

integration: bump timeout for good path
pkg: move to more generic StringsFlag
Merge pull request #1608 from jonboulle/flags

pkg: move to more generic StringsFlag
etcdserver: refactor sender

1. restrict the number of inflight connections to remote member
2. support stop