Add newick format

Ready for review

I still need to add `read` and `write` as well as deprecate `to_newick` and `from_newick`

@wasade I am particularly interested in any comments you might have.

fixes #627 
`_is_node_equal` can never return false, it will only raises `AssertionError`s. It might be worth refactoring `_is_node_equal` and `_is_equal` to just assert equality and not return a bool (since this is just used in testing).