Properly close session if client failed to start
Properly close session if client failed to start

`keep_alive` was not defined until it was created in `received_message`, `ws` is `None` until its actually connected, which doesn't always happen.  If an error happens before things start up properly, the client should now clean its objects up (fixes `unclosed client session` warning).
Harmon758/discord.py,jhgg/discord.py,variablehair/Eggplantato,mgardne8/discord.py,khazhyk/discord.py,lgkern/PriestPy,Theoretical/UselessBot,Harmon758/discord.py,imayhaveborkedit/discord.py,rapptz/discord.py,Rapptz/discord.py