Fixing intermittent crashes when a disconnect is issued for a server
connection when proxies are used.

Proxies use AsyncSocket's closeWithError: message to perform a socket close.
There are scenarios where the NSError parameter is nil and is passed to the 
delegate's willDisconnectWithError: message. IRCConnectionSocket will then
cleanup the socket by destroying its memory and the delegate's and setting
both references to nil, which isn't correct since AsyncSocket's closeWithError:
message calls close on the socket after the willDisconnectWithError: message.