Graphs

Introduction
In July 2015, new Graph structure is added in Bio++. It aims to be a generic tool to represent graphs, and hence trees in their structure and manage objects associated to this structure.

Whereas the classical bpp::Tree rationale is mainly included in its nodes, bpp::Graph manages its nodes and edges relations itself. EG: in the classical Tree, a tree knows its root, and the roots knows its sons, and so on. The nodes know their father. But the tree integrity cannot be guaranteed at all. In the new bpp::Graph, nodes and edges are not autonomous objects. They are just IDs in the graph representation. The graph manages the relations itself. It implies two main benefits:
 * the integrity of the graph can be easily checked,
 * the access to a certain node doesn’t need to browse recursively all the nodes from the root. With the standard implementation, a node can be found in O(log(n)).