A General and Efficient Algorithm for the Likelihood of Diversification and Discrete-Trait Evolutionary Models. (30th September 2019)