Evolve states from parent to child. States are sampled
        from gamma categories passed in the array 'categories'.
        The branch length information is encoded in the probability
        matrix, 'probs', generated in __init__.

def evolve_states(self, parent_states, categories, probs):
        """
        Evolve states from parent to child. States are sampled
        from gamma categories passed in the array 'categories'.
        The branch length information is encoded in the probability
        matrix, 'probs', generated in __init__.
        """
        child_states = np.empty(parent_states.shape, dtype=np.intc)
        _evolve_states(self.state_indices, parent_states, categories, probs, child_states)
        return child_states