fix random rotation quat stuff

The function to return a zero rotation random axis quat doesn't
do that, since a zero rotation quat ends up always using the same
axis, since the axis doesn't matter if there's no rotation.

So the random rotation stuff that depended on the the zero rotation
random axis quat to work, doesn't work.

This fixes that.
fix on-axis rotation of derelicts

Rotation should be more arbitrary
factor out some arbitrary object spinning code