New library file arbor.js to create and manipulate arbors.
An Arbor is defined as a graph:
 * with only directional edges
 * only one root node (one node without parent)
 * no loops.

This data structure allows for a number of high-performance versions
of otherwise slow generic graph algorithms.