Redesign of the axis permutation algorithm of the frame_order.permute_axes user function.
Instead of tracking the fact that cone_theta_x is a rotation around the y-axis and cone_theta_y is
about the x-axis, now two permutation arrays are created - one for the three angles and one for the
axes. The permutation array values have also been completely changed as previously the incorrect
inverse permutation was coded into the algorithm.