FSM fixing instance properties during init

This change means to allow FSM instances to also allow prototype properties, not just methods. The exclusion of properties disallowed setting default values and sharing values between instances, the entire point of prototypal inheritance.

The same behavior that extends the `FSM.state` objects remains intact, and all tests continue to pass.