transitions between arbitrary states are now supported. This caused a slight API change, where it makes sense that all callbacks get the source and target states for the current transition (since they can no longer be known implicitly). While doing this, the 'next' property of handlers was renamed 'target' for consistency.