Add a SampleShapeValidator type

It is used for checking that a workspace has a valid sample shape.
Refs #10169
Add unit & performance test for V3D::rotate.

Refs #10169
Merge branch 'feature/10169_vesuvio_mscorr' into develop