Graph: Natural Loops (#75)
Graph: Natural Loops (#75)

* Graph: Add method to determine if the graph is acyclic

This method uses an slightly adapted version of the topsort
algorithm.

* Graph: Add methods to compute set of reachable/unreachable vertices

* Graph: Add method to determine if graph is reducible

The algorithm works as follows:
1. Compute the set of back edges (BE)
2. Create a new graph with forward edges (FE) only, where FE = E \ BE
3. Check if FE graph is acyclic and every node is reachable from head

* Graph: Add method compute all natural loops in the graph
endeav0r/falcon,falconre/falcon,endeav0r/falcon,falconre/falcon,endeav0r/falcon,falconre/falcon,endeav0r/falcon