Allow transition listeners to be of super types

Fixes #1

The list of transition listeners to should be of listeners of any super
type of the specified state and event types.  This allows generic
transition listeners to be created and used for any state machine
without the need to recreate for each state machine.