Add "height" and "depth" to nodes, with method for updating height

Depth comes next!
Update and extract depths from a tree
Small changes required by upgrading Xcode
Nicer way of updating heights, making this available to unwrapped trees.

This is probably the pattern that I'll want to use for any method that
modifies the tree.
More branch length checks: has_branch_lengths and is_ultrametric

The first checks if all branch lengths are valid, the second if
a tree is ultrametric to some tolerance.
Move is_binary_tree to be method of tree_wrapper.

Makes it line with has_branch_lengths, etc and solves a
potential ape namespace clash.