Socket: Ensure driver is flagged as disconnected after a socket error.
Socket: Ensure driver is flagged as disconnected after a socket error.

Users were occasionally hitting a situation where the socket had errored,
causing a reconnect, but the socket wasn't closed nor the driver marked as
disconnected.  This resulted in run() continuing to try and use the driver,
which would cause another error, schedule another reconnect, log an error, ad
infinitum.

Closes: Sf#2965530

Signed-off-by: James Vega <91ae71a1168cea0b65ac9975da69d5a7753116be@users.sourceforge.net>
(cherry picked from commit a278d17f2bec3697987cbd403594393a4fb30021)

ProgVal/Limnoria-test,Ban3/Limnoria,haxwithaxe/supybot,jeffmahoney/supybot,buildbot/supybot,raboof/supybot,Ban3/Limnoria,frumiousbandersnatch/supybot-code,ProgVal/Limnoria-test