trees 0.4.2

General purpose tree data structures
# Tree

`Tree` is composed of one or more `Node`s. A tree is always non-empty.

## Tree root

`Tree` can be constructed from a root value of type `T`, which can be accessed
later via `root()` and `root_mut()`.

## Children

`Tree` can insert/delete child `Node`s at front/back of its children list,
which is a conceptual `Forest` and can be removed once the `abandon()` is called.

## Degree

The amount of child nodes of a tree is called tree's `degree()`.

The amount of all nodes of a tree is returned by `node_count()`.

## Breadth first search

A `Tree` may be converted to an owning iterator via `into_bfs()`, which
iterates all its nodes in the manner of breadth first search.