[StateMachine] improved the StateMachine::getCurrentState() and getPreviousState() methods
[StateMachine] changed the StateMachine::triggerEvent() method to raise a StateMachineNotStartedException when an event is triggered before starting the state machine
[StateMachine] changed the StateMachine::initialize() method to initialize $previousStateID and $eventQueue properties as well
[StateMachine] changed the StateMachine::start() method to raise a StateMachineAlreadyStartedException when starting the state machine if it is already started