add underscore as a dependency
Connection cleanup

 callback from connect with errors if already connecting.
 stop abusing event listeners on the connected event.
 remove unused code for managing iterating the connections.
 re-implement legacy behavior around timeout duration (timeout * connections.length)
 fix a bug where if one connection is unhealthy but not stale, _getNextConn would fail.
use a state enum for connection states