getlantern/lantern#1895 Stopping old connection pool when restarting ser...

...ver
Assuming a MinSize of 20:

We now launch 20 goroutines that have infinite loops to dial connections and feed them to an unbuffered channel from which Get() gets them.  This means that the connections effectively queue up pending being submitted to that channel, so the queue depth is capped by the number of goroutines (e.g. 20).  If Get() is unable to obtain a connection from that channel (i.e. queue has been exhausted and new connections are no longer available), it simply dials its own connection.  So at any given time, we can have more than 20 connections in flight, but any connections over 20 are actually being used by whoever called Get().