Check if the graph contains a cycle

Summary:
Use a Dept-first Search algorithm to find if there is any cycle in the Graph
The check is automocaly perform at the Graph creation (see Graph::Graph()
constructor)

Test Plan: ./test/run-tests.py -t TestCycleGraph TestCycleLongGraph

Reviewers: adrienconrath

Reviewed By: adrienconrath

Subscribers: NicolasDP

Differential Revision: http://91.121.199.76/D46