lxd/events/events: Rework events.Listener to use websocket heartbeats
lxd/events/events: Rework events.Listener to use websocket heartbeats

Also cleaned up the events.Listener type, switches to context, and moves concurrent send lock usage inside type's functions.

Signed-off-by: Thomas Parrott <6b778ce645fb0e3dde76d79eccad490955b1ae74@canonical.com>

hallyn/lxd,lxc/lxd,stgraber/lxd,stgraber/lxd,lxc/lxd,lxc/lxd,hallyn/lxd,stgraber/lxd,stgraber/lxd,stgraber/lxd,lxc/lxd,hallyn/lxd,hallyn/lxd,stgraber/lxd,lxc/lxd,hallyn/lxd,stgraber/lxd,lxc/lxd,lxc/lxd,hallyn/lxd