Feature/new session listener

Here's the PR for attaching a Listener to activeSession.  For backwards compatibility, activeSession still makes a Listener and attaches it.  This will probably leak a little memory (since it attaches callbacks to the events), but only once, and we'll remove it when we do the next major version update.

@jjackson26 @swarajban