Lay the groundwork for non-routable substates

This allows a state to specify an additional
substate to enter into. It does not (yet)
support directly transitioning into a non-routable
child or sibling state.