Continually rebalance client connections
Continually rebalance client connections

Introduce a low-level background connection expiration mechanism wherein connections will be recycled periodically based on the size and health of the cluster.

For the vast majority of consul users, this will mean an average connection age of 150s.  For 10K node clusters it will take ~3min for clusters to rebalance their connections.  In the pathological case for a 100K cluster where 99K clients are in the minority talking to 1x server it will take ~26min to rebalance all connections.

It's possibe for clients recovering from a parititon to become fixated on a single server until the server or agent is restarted.  This is of particular interest to long-running environments with stable agents, where `allow_stale` is true, and partitions occur periodically.

mckennajones/consul,jovandeginste/consul,andygoalkeeper/consul,calgaryscientific/consul,zeroae/consul,zeroae/consul,tshak/consul,turbine/consul,Pivotal-Pierre-Delagrave/consul,samaitra/consul,i0rek/consul,jovandeginste/consul,kaskavalci/consul,shaneog/consul,kaskavalci/consul,hashicorp/consul,sequenceiq/consul,mshean/consul,mshean/consul,kingland/consul,sean-/consul,dankraw/consul,andygoalkeeper/consul,scalp42/consul,mshean/consul,tugbabodrumlu/consul,kingland/consul,nicholascapo/consul,nicholascapo/consul,sean-/consul,rhyas/consul,mckennajones/consul,scalp42/consul,lindenlab/consul,pmalmgren/consul,jovandeginste/consul,dankraw/consul,Thib17/consul,tshak/consul,Pivotal-Pierre-Delagrave/consul,sweeneyb/consul,sequenceiq/consul,sweeneyb/consul,Pivotal-Pierre-Delagrave/consul,Thib17/consul,sunadm/consul,shaneog/consul,hashicorp/consul,vamage/consul,sean-/consul,turbine/consul,kaskavalci/consul,mckennajones/consul,kaskavalci/consul,Thib17/consul,dankraw/consul,pmalmgren/consul,samaitra/consul,andygoalkeeper/consul,andygoalkeeper/consul,kylemcc/consul,lindenlab/consul,scalp42/consul,samaitra/consul,lindenlab/consul,tugbabodrumlu/consul,sunadm/consul,kingland/consul,kylemcc/consul,lindenlab/consul,tshak/consul,kylemcc/consul,sequenceiq/consul,sweeneyb/consul,pmalmgren/consul,tshak/consul,vamage/consul,kylemcc/consul,mshean/consul,youhong316/consul,youhong316/consul,jovandeginste/consul,42wim/consul,mckennajones/consul,shaneog/consul,Pivotal-Pierre-Delagrave/consul,Thib17/consul,sunadm/consul,leowmjw/consul,zeroae/consul,rhyas/consul,42wim/consul,tugbabodrumlu/consul,vamage/consul,turbine/consul,andygoalkeeper/consul,turbine/consul,tugbabodrumlu/consul,Pivotal-Pierre-Delagrave/consul,rhyas/consul,samaitra/consul,42wim/consul,turbine/consul,i0rek/consul,calgaryscientific/consul,i0rek/consul,kingland/consul,kaskavalci/consul,leowmjw/consul,nicholascapo/consul,42wim/consul,calgaryscientific/consul,tugbabodrumlu/consul,i0rek/consul,rhyas/consul,leowmjw/consul,dankraw/consul,shaneog/consul,mckennajones/consul,sweeneyb/consul,tshak/consul,zeroae/consul,calgaryscientific/consul,calgaryscientific/consul,samaitra/consul,i0rek/consul,sequenceiq/consul,kylemcc/consul,sunadm/consul,rhyas/consul,sequenceiq/consul,pmalmgren/consul,vamage/consul,zeroae/consul,scalp42/consul,scalp42/consul,hashicorp/consul,pmalmgren/consul,leowmjw/consul,hashicorp/consul,sean-/consul,vamage/consul,sunadm/consul,sean-/consul,leowmjw/consul,youhong316/consul,lindenlab/consul,shaneog/consul,42wim/consul,dankraw/consul,nicholascapo/consul,jovandeginste/consul,youhong316/consul,Thib17/consul,kingland/consul,sweeneyb/consul,youhong316/consul,nicholascapo/consul,mshean/consul