Call notifyPropertyChange on currentStates when statechart is destroyed.

The currentStates property was remaining cached after the statechart was
destroyed. This meant that when respondsTo was called, it would still
iterate through these now destroyed states, causing a crash.
Removes extra array creation.  Rather than create an array for no purpose other than for testing respondsTo when the statechart is destroyed, this change adds a gate check to the respondsTo method itself similar to what was already done with sendEvent and gotoState.