* Cast string to sym when checking event in `fire`
* Return early from method if event found
* Change message to reference Event, not State
* Add UndefinedEvent exception
Previously the code raised "UndefinedState" when it failed to find an
Event. This is confusing but was already released to the public. So this
adds UndefinedEvent as a subclass of UndefinedState and raises it
instead.
* Update Changelog
For easier debugging and error handling for models with multiple state_machines.
This non-breaking change add the state_machine name to the attributes of the InvalidTransition error
When message is set as variable, instead of redefining `message`
method, the message will be used in `inspect` and `to_s` calls,
both implicit and explicit, which improves logs readability and
simmplifies debugging in the irb