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 
It's because I made this PR before they were merged into develop.  I think GH tracks the branch point via hash, so that when I merged develop into this branch, they are considered 'changed' for the PR.  Not my favorite feature of github PRs.