Allowed action to accept wild card children states

#1 Improve state machine generics

This change allows the actual transition states to be child classes of
the specified state type.  This increases the flexibility of the action
interface and allows future generics improvements.