change api to match changes in natefinch/tree.  Now we hold the data and
tree separately in a wrapper struct.

Because we no longer use a closure passed into the tree for comparison,
this makes comparisons a lot faster.