When tree nodes are added as children of other nodes, store this information in the  attribute. This makes finding common ancestors and distances between taxa much faster. Rewriting relevant BaseTree functions for efficiency.
Removing property.setter decorator for compatibility with Python 2.5.
next() wasn't available in Python 2.5; use .next() method instead.
Moving `parent attribute to `_parent` to discourage direct manipulation, as this could break the new path/distance/mrca functions.
Adding `cache_labels` method for trees. When this is run, it creates a dictionary mapping node labels to tree nodes. After being run, all find_elements searches for named labels will be much faster.
Not really a cache so much as an index.
Updating CDAO library to remove dependency on librdf. Using RDFlib instead.
Write triples directly to file instead of going through rdflib. This avoids storing entire graph in memory.
Merge branch 'cdao'
CDAO trees and clades have a [(predicate,object)] `attributes` list containing any additional triples with that tree/clade as subject.