What I think is actually amazing here is that `self` and `wrap_angle` can be in any angular unit, and what comes out is actually the right answer in the units of `self`.  I need to write some more tests of this, but that's the way it is supposed to work?  Unit precedence goes to the left side in a binary operator or even binary ufunc.