Connection retry limit
Documented the connectionRetryLimit
Merge branch 'feature/ssl-failure-abort' into develop
Restructured documentation.
Remove a socket from the pool when a timeout occurs

In some cases timeouts are occurring but the socket isn't fully closing. Because of this the maximum number of open sockets is reached and no further notifications are sent. (Issue #156)

When a timeout occurs the socket is now removed from the pool to ensure new sockets can be created.
v1.6.0
Increase default cache length
Add delay to handle mismatched certificates
Handle errors "during" connect

If a socket error occurs during the connection process, flag the socket as retired so it doesn't get added to the pool for use.
DRY some socket handling code.
Added some more debug logging

Much more work needed here.
Use socket provider for feedback.
Improved buffer servicing for multiple connections
"namespaced" properties used on sockets.
Tightened conditionals to apply to legacy mode
Removed a redundant JSON.stringify
Added some guidance for an error scenario.