Fix STORE-264


The commit fixes STORE-264

The lifecycle UI did not accurately depict the structure of the lifecycle. It was unable to display loops and connections between nodes (states) which were not adjacent to one another) without an overlap.

Changes:
-Add pseudo nodes to create links between nodes which are not in adjacent levels
-Implemented the 2nd step of the Sugayama algorithm to sort nodes on a per level basis
-Corrected arrow placement ( They now appear in the correct direction and also indicate loops)

To do:
-Add comments to the library
-Refactor the code to be more modular