Support applying a flipped pose, useful when animating symmetrical rigs.
This is similar to "Apply Visual Transform to Pose" with additional
features useful when flipping a pose.
- Optionally use the 3D cursor as an origin:
to flip root poses that aren't located near the objects origin
which would otherwise flip them along the objects local X axis.
- Optionally flip custom properties.
- Skip constraints so unmodified values are copied,
needed for some rigs to work properly.
This can be accessed from the Apply menu, as well as the RNA function:
`object.pose.apply_pose_visual_flip()`
----
### Motivation
This patch adds functionality to flip an entire pose on the X axis using a symmetrical rig.
**Alternative Solutions**
An alternative approach could be to flip values in the action, there are pros and cons for this.
It's more involved to flip transform channels, with multiple problems such as missing F-Curves,
which would then need to be flipped by their value directly.
It would require keying these channels as well.
In contrast, applying visual transform is similar to using regular transform which the user is then responsible for keying.
**Limitations**
When testing, I found flipping with constraints made the main rig from `sprint.blend` fail.
There is an option to disable constraints to workaround this. It's an example where only flipping input values could be better.