Add empty() function.

Not the most important function, but useful and easy to support.
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.