Development of branch length optimisation
-- tdg.Analyse - removed trailing period in lnL output
-- tdg.BranchLengthOptimiser - takes a tree and optimises branch lengths one at a time by rerooting the tree
-- tdg.SiteCalculator - a wrapper around LikelihoodCalculator to update tree and calculate lml for a new branch length (probably can be integrated into LikelihoodCalculator)
-- tdg.model.LikelihoodCalculator - save partial likelihood at the root, don't scale conditionals at the root, don't create 2 probMatrix arrays for heterogenous models unless necessary (save memory), add getNodeLikelihood method to get total lnL with a new branch length for a particular node-root branch
-- tdg.model.TDGCodonModel - add some TODO comments for future work
-- tdg.model.TDGGlobals - remove errormatrix (gamma parameter)…not used
-- tdg.trees.BranchLengthComparer - utility class to take two trees and output branch lengths side-by-side. checks that topology and out groups are the same.
-- tdg.trees.RerootedTreeIterator - iterates over all the possible rerooted trees for a given tree. saves out group (if any) so tree can be restored to original rooting (but preserved changed branch lengths)
-- tdg.utils.PhyloUtils - add prettyTreeString and getTotalTreeLength methods