Last of the bugs busted.

Here's why revM breaks:

revM cannot accurately gauge the duration of a Music a value because dur
is broken for all players that implement tempo modifications outside of
(Tempo r). If revM encounters something like:

m = rest hn :=: phrase [(Tmp (Ritardando 1))] (c 4 qn)

it will incorrectly add a rest qn to the end of the right side of the
(:=:) to make both parallel lines of music the "same" length before
reversing them. Interpreted by the fancy player, phrase [(Tmp
(Ritardando 1))] (c 4 qn) actually has a duration of 1/2, same as the
rest. So when revM reverses it, we get a result like:

revM m = rest hn :=: (rest qn :+: phrase [(Tmp (Ritardando 1))] (c 4
qn))

...but this ultimately ends up having a duration of 3/4, instead of 1/2
since fancy player will lengthen the ritardando!

Ultimately, a bug in dur breaks both revM and Axiom 11.3.8