provide method to add trees to existing nexml.
This is actually a relatively significant overhaul of the ape section of the code, since it introduces
more complex handling of ids using nexml_id() function instead of a very naiive approach based on ape::phylo
numbers.  Largely parallels the structure of add_characters.  Should be passing all unit tests provided
now, though more unit tests should be added to cover some of the special cases handled by the new functions