emit events when callback undefined
wipe app state on launch and quit
add scaffold of heartbeat handling
don't cache app state

The volume and muted state aren't cached, let's not cache the state either until it is needed.
delay token and heartbeat interval reset
use event listeners instead of callbacks