Fix keep_alive running after logout()
Fix keep_alive running after logout()

_keep_alive_handler would set up another keep alive after the first one
by creating a new threading.Timer object, but Client would only keep
track of the first timer object.  Thus casing the keep alive to continue
running after Client.logout calls cancel() on it's timer object, as it
no longer references the actual timer object waiting for the keep alive.

Fix by replacing _keep_alive_handler with a threading.Thread subclass
that sends keep_alives of the given interval and exits when its stop
event is set.

eartsar/discord.py,Harmon758/discord.py,megamit/discord.py,rapptz/discord.py,khazhyk/discord.py,Harmon758/discord.py,mgardne8/discord.py,lgkern/PriestPy,Theoretical/UselessBot,Rapptz/discord.py,imayhaveborkedit/discord.py,variablehair/Eggplantato,jhgg/discord.py