fix exhaustion & queueing test

Connections must be EventEmitters
add a test for errors caused by onConnect
(#10) - Add options.shouldDestroyConnection

This callback allows the user to determine whether a given error should cause
a connection to be destroyed. This also adds handling for 'error' events
emitted by idle connections.