Scope state transition cache to the state manager class

The `pathsCache` currently does not allow a state to be shared between multiple state managers.  If you have a mixin or base state manager class that specifies one state "ready", and then two subclasses that specify another state "uploading", the cache will result in only one of the "uploading" states being reachable.

See the failing spec for a better explanation.

Proposed solution takes into account the current stateManager's constructor when looking up the cached values.  Hopefully no-one is reopening state manager classes and overwriting states after they have been transitioned to.