Transitions can now have dynamic destinations

Fixes #22

Each transitions can now have a dynamic destination.  The get
destination method is now only called once per transition and a copy of
the transition is made to pass to actions and listeners.