Transition listeners now have stages

A transition listener is now notified before, between, and after the
state transition.  The specific stage is passed to the transition
listener so that it can decide when to react.
Forgot to add the transition stage enumeration
Merge pull request #64 from bnorm-software/transition_stages

Transition listeners now have stages