Allow instance keys to disappear during cleanup.

When taking a <<cleanup>> transition, it's ok to lose instance name information.
Allow out-of-scope events to name their states.

If a state exists purely as a target for out-of-scope events (as can happen in some cleanup cases), it may be named by those events.
State.VariableReferences must always be set.