Golang net.Conn Connection Pool
This package was inspired by https://github.com/fatih/pool - **This is NOT a fork, it will function differently!!!**
The main differences are:
* The connection pool is capped and Dial will block once the pool is full!
* Connections are capped with a Buffer that can be optionally shared between pools.
* Dial can Timeout if we fail to acquire a spot from the Buffer queue! (DialTimeout or similar should be used within the Dial function)
* DialInitial can not garauntee that we will always dial the initial amount due to the possibility of a shared Buffer.