Add a tasks graph display in addition to the list display. A button will let the
user choose between the two display formats (defaulting to the tasks graph).
Since the graph is a DAG with many edges it's quite difficult to organize the
tasks and the edges without any overlap.
The current implementation uses a simpler approach where tasks are distributed
horizontally by their level and tasks at the same level are distributed in a way
that there's always space for an edge also if the child is some levels below.
In this way edges may overlap and in this case they will appear as a single
edge.
The user, when hovering over a task, will see the connections with the other
tasks since the related edges becomes bolder.