Added actions to be executed when a transition occurs. Multiple entry/exit actions on states, instead of just one. Some refactorings.

- 'TransitionRule' renamed 'Transition' for both clarity and brevity
- Now a exception being thrown at every executed actions is logged AND then raised up to the caller code. It should handle it as it sees it better.