Add root() function.

This returns an iterator that will allow manipulating nodes at the root of
the tree, which do not have a parent.
Add begin()/end() functions.

These will iterate over the entire tree, depth first.