Add start-wan-join, retry-wan-join and related configuration options and commandline options
Added HTTPS support via a new HTTPS Port configuration option similar to the HTTP Port.
Added RPCServerMapper to allow external program to choose remote DC server to target
Change names to StartJoinWan, RetryJoinWan etc
Moved TLS Config stuff to tlsutil package
consul.Config() helper to generate the tlsutil.Config{} struct, 30 second keepalive, use keepalive for HTTP and HTTPS
Merge upstream
Ephemeral Nodes for via Session behavior settings.

Added a "delete" behavior for session invalidation, in addition to
the default "release" behavior. On session invalidation, the sessions
Behavior field is checked and if it is set to "delete", all nodes owned
by the session are deleted. If it is "release", then just the locks
are released as default.
Merge ephemeral_keys
cleanup unreachable code
fix Sprintf formatting
Merge pull request #498 from alouche/fix_sprintf_unreachable_code

Fix sprintf formatting and cleanup unreachable code
website: Improve docs for reloading config. Fixes #407
* Fix race condition on read/write of shutdown bool variable of server and connection pool.
* In connection pool, there is no guarantee that .reap() cannot execute the same time as .Shutdown() is called. It also did not benefit to eval shutdown when a select is run on the shutdown channel.
* In server, same principle applies to handleConsulConn. Since we also have a shutdown channel, it makes more to use this than to loop on a bool variable.
docs: intro/agent: minor fixes
docs: intro/services: minor fixes
docs: intro/join: minor fixes
docs: intro/checks: minor fixes
docs: intro/kv: minor fixes
docs: compatibility: minor fixes