Initial implementation of the base algorithm that will be used for the state machine
Header comments adjustment
Initial implementation of the main features.
Adjustments: added a way to get edges from a graph. Added a proper test case for it.
Added state machine class initializer.
Added the first test case for state machine.
Added more test scenarios for state machine tests
Added a reset method to the state machine
Added the state machine delegate to handle state transitions processing.
Added test scenarios for the delegate.